【发布时间】:2020-11-06 02:33:26
【问题描述】:
我有一个数据框
time. item. value1. value2
-----------------------------------
1 1 3 4
2 1 2 5
1 2 3 5
3 2 2 1
2 3 3 6
3 3 2 5
我想将其转换为以下内容
time. item. value1. value2
-----------------------------------
1 1 3 4
2 1 2 5
3 1 nan nan
1 2 3 5
2 2 nan nan
3 2 2 1
1 3 nan nan
2 3 3 6
3 3 2 5
所有项目的时间范围相同,如果不在原始数据帧中,value1 和 value2 是 nans。我用外部连接做了一些试验,但没有成功。
有什么简单的方法吗?
【问题讨论】:
-
您提供的输出与要求不符,例如
(item=2, time=2)不存在于原始数据帧中,因此输出中应为NaN。 -
@Ch3ster 取消删除您的解决方案,我认为它是正确的。
-
@Ch3ster 有一个解决方案。
(df.set_index(['time.', 'item.']).reindex(pd.MultiIndex.from_product([df['time.'].unique(), df['item.'].unique()], names=['time.', 'item.'])).reset_index())) -
@ShubhamSharma 我没有收到您标记我的通知,我没有看到该问题已被编辑。取消删除。
-
@ScottBoston 我没有收到您标记我的通知。感谢您抽出时间并将其发布在 cmets 中。现在取消删除。
标签: python pandas outer-join