我有两个数据框。第一个包含不同城市的数据。
dfTmp:
City 2005 2007
0 London 3 7
1 Paris 2 0
然后是我要填充的空数据框
dfData:
City Year
0 London 2005
1 London 2007
2 Paris 2005
3 Paris 2007
我想合并这两个数据集。然后dfData
应该变成如下
dfData:
City Year Value
0 London 2005 3
1 London 2007 7
2 Paris 2005 2
3 Paris 2007 0
最佳答案
您不需要第二个数据框 dfData。您需要的所有数据都在 dfTmp 中。您只需要使用以下方法 reshape dfTmp:
选项 1
使用set_index
和stack
dfData = dftmp.rename_axis('Year', 1).set_index('City').stack().reset_index(name='Value')
print(dfData)
输出:
City Year Value
0 London 2005 3
1 London 2007 7
2 Paris 2005 2
3 Paris 2007 0
选项 2
使用融化
:
dfData = dftmp.melt(id_vars='City', var_name='Year', value_name='Value')
print(dfData)
输出:
City Year Value
0 London 2005 3
1 Paris 2005 2
2 London 2007 7
3 Paris 2007 0
关于python - 如何根据标题和列值合并两个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46348149/