Pandas数据框添加了自动添加缺失索引的列

时间:2016-04-19 14:40:52

标签: python pandas dataframe

我有以下2个简单的数据帧。

DF1:

df1

DF2:

df2

我想通过使用类似的东西将df2添加到df1:

df1["CF 0.3"]=df2

但是,这只会添加df1和df2中的索引相同的值。我想要一种方法可以添加一个列,以便自动添加缺失的索引,如果没有该索引的关联值,则填充NaN。像这样:

enter image description here

我这样做的方式是写作     DF1 = df1.add(DF2)

这会自动添加缺失的索引,但所有值都是NaN。然后我通过写:

手动填充值
df1["CF 0.1"]=dummyDF1
df1["CF 0.3"]=dummyDF2

有更简单的方法吗?我有一种感觉,我错过了一些东西。

我希望你理解我的问题:)

3 个答案:

答案 0 :(得分:0)

使用concat请参阅此documentation以获取详细帮助。

以下是基于文档的示例:

import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']},
                    index=[0, 1, 2, 3])


df2 = pd.DataFrame({'X': ['A4', 'A5', 'A6', 'A7'],
                    'XB': ['B4', 'B5', 'B6', 'B7'],
                    'XC': ['C4', 'C5', 'C6', 'C7'],
                    'XD': ['D4', 'D5', 'D6', 'D7']},
                     index=[4, 5, 6, 7])


df3 = pd.DataFrame({'YA': ['A8', 'A9', 'A10', 'A11'],
                    'YB': ['B8', 'B9', 'B10', 'B11'],
                    'YC': ['C8', 'C9', 'C10', 'C11'],
                    'YD': ['D8', 'D9', 'D10', 'D11']},
                    index=[8, 9, 10, 11])

#To get the desired result you are looking for you need to reset the index.
#With the dataframes you have you may not be able to merge as well
#Since merge would need a common index or column  
frames = [df1.reset_index(drop=True), df2.reset_index(drop=True), df3.reset_index(drop=True)]

df4 = pd.concat(frames, axis=1)

print df4

答案 1 :(得分:0)

答案 2 :(得分:0)

查看concat函数,它可以完成您所需的here