有以下数据: board_href_deals items test10 test2 {'x': 'a'} test11 test2 {'x': 'b'} test2分组“board_href_deals”后,我想以列表格式输出现有数据,如下所示: board_href_deals items test10 test2 [{'x': 'a'}, {'x': 'b'}] ['test1', 'test2']谢谢你
2 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
另一种解决方案,尤其是在旧版本的 Pandas 上,是在序列上使用GroupBy+ apply,然后通过concat.
在 Python 3.60 / Pandas 0.19.2 上进行基准测试。这个人为的例子有少量的组;如果效率是一个问题,您应该使用您的数据进行测试。
import pandas as pd
df = pd.DataFrame({'A': ['test2', 'test2', 'test4', 'test4'],
'B': [{'x': 'a'}, {'x': 'b'}, {'y': 'a'}, {'y': 'b'}],
'C': ['test1', 'test2', 'test3', 'test4']})
df = pd.concat([df]*10000)
def jpp(df):
g = df.groupby('A')
L = [g[col].apply(list) for col in ['B', 'C']]
return pd.concat(L, axis=1).reset_index()
%timeit jpp(df) # 11.3 ms per loop
%timeit df.groupby('A').agg(lambda x: list(x)) # 20.5 ms per loop
添加回答
举报
0/150
提交
取消