1

我有两个列数和行数不同的 CSV 文件。第一个 CSV 文件有 M 列和 N 行,第二个有 H 列和 G 行。一些列具有相同的名称。

我想将两者结合到具有以下属性的数据框中:

  • N+G 行
  • (M, H) 列的并集
  • 如果 A 列是第一个 CSV 文件的元素但不是第二个文件的元素,则数据框应在 A 的前 N ​​个条目中包含与第一个 CSV 中相同的值,其余的(因为第二个 CSV 中没有 A 数据)应该是不适用。

这是一个例子:

CSV1
City, Population,
Zagreb, 700000,
Rijeka, 142000

CSV2
City, Area,
Split, 200.00
Osijek, 171.00
Dubrovnik, 143.35

我想构建一个如下所示的数据框:

City      Population   Area
Zagreb    700000       NA
Rijeka    142000       NA
Split     NA           200.00
Osijek    NA           171.00
Dubrovnik NA           143.35

另外,如果我有两个 CSV 文件,我有两个数据框并想要做同样的事情,例如,如果我将第一个 csv 加载到df1第二个df2,然后想要合并到df3上面的示例,该怎么办。

4

1 回答 1

4

为什么不试试这个concat功能:

In [25]: df1
Out[25]: 
     City  Population
0  Zagreb      700000
1  Rijeka      142000

In [26]: df2
Out[26]: 
        City    Area
0      Split  200.00
1     Osijek  171.00
2  Dubrovnik  143.35

In [27]: pd.concat([df1,df2])
Out[27]: 
     Area       City  Population
0     NaN     Zagreb      700000
1     NaN     Rijeka      142000
0  200.00      Split         NaN
1  171.00     Osijek         NaN
2  143.35  Dubrovnik         NaN

In [28]: pd.concat([df1,df2], ignore_index=True)
Out[28]: 
     Area       City  Population
0     NaN     Zagreb      700000
1     NaN     Rijeka      142000
2  200.00      Split         NaN
3  171.00     Osijek         NaN
4  143.35  Dubrovnik         NaN

注意:concat如果您的要求略有不同,则确实有一些额外的选项。

于 2012-11-26T22:59:22.900 回答