我正在从网站中提取数据。每个记录有100多个数据列。每个记录可以具有不同数量的数据列,具体取决于可用数据,但是所有不同的列都有唯一的名称,因此可以匹配它们,但是随着列数的变化,它们的顺序将不同。总列数未知。
假设每个记录有4个数据表,所有数据表都具有相同的索引。
如何将记录合并到第一个数据表中,同时将每个数据点放入其列中,并在需要时添加新列。
示例:
表1:
| id | A | B | C |
| 0 | 1 | 2 | 5 |
| 1 | 2 | 3 | nan |
表2:
| id | C | D |
| 1 | 5 | 6 |
| 2 | 7 | 8 |
结果:
| Id | A | B | C | D |
| 0 | 1 | 2 | 5 | 6 |
| 1 | 2 | 3 | nan | nan |
| 2 | nan | nan | 7 | 8 |
注意: -nan是空白值 -合并将始终为空白+值 -在这种情况下,C被合并,D被添加。我可能有10列需要合并。 -我不要求提供代码,只是有关如何在python中完成此操作的指南
尝试使用pandas连接和合并,但它们不是为此用例设计的。
答案 0 :(得分:0)
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2], 'B': [2, 3], 'C': [5, None]})
df2 = pd.DataFrame({'C': [5, 7], 'D': [6, 8]})
common_columns = list(df1.columns & df2.columns)
df1.merge(df2, on=common_columns, how='outer')
输出:
A B C D
0 1.0 2.0 5.0 6.0
1 2.0 3.0 NaN NaN
2 NaN NaN 7.0 8.0