【发布时间】:2019-10-14 20:53:28
【问题描述】:
我的数据框
Items Count ScannedCount
0 {'comp': {'S': '2019-08-02'}... 1032 1032
1 {'comp': {'S': '2019-08-27'}... 1032 1032
物品系列是这样的
{'comp': {'S': '2019-08-02T16:54:55.035196+03:00'}, 'ID': {'S': '336'}, 'dID': {'S': '1763523'}, 'fname': {'S': '558012'}}
使用post 中的第二个答案,我可以将系列转换为数据框。 问题是如何扩展该操作,因为它发生在每一行上,
目前的做法:
遍历每一行并将它们连接成一个系列(非常慢)
item_df = pd.DataFrame(df['Items'].iloc[i]) for i in range(df.shape[0])]).reset_index(drop=True), df], axis=1)
将结果与原始数据框相结合
df = pd.concat([temp, df], axis=1)
我相信第一部分中的for 循环是瓶颈。
有没有更快的方法将系列转换为数据帧并将其连接回原始数据帧。
预期输出:
comp ID dID fname Count ScannedCount
0 2019-08-02T16:54:55 336 1763523 548012 1032 1032
1 2019-09-01T14:52:24 336 1763523 528012 1032 1032
【问题讨论】:
-
我不确定您到底想达到什么目标。可以添加预期的输出吗?是这样的吗:
df = pd.concat([df.drop(['Items'], axis=1), df['Items'].apply(pd.Series)], axis=1)? -
添加了预期输出
标签: python pandas dataframe concatenation