我正在尝试编写一个函数,该函数以pandas Dataframe作为参数,并在某些情况下将此datagframe与另一个连接。
例如:
def concat(df):
df = pd.concat((df, pd.DataFrame({'E': [1, 1, 1]})), axis=1)
我希望此函数在输入df
的位置进行修改,但是我找不到如何实现此功能。当我这样做
...
print(df)
concat(df)
print(df)
函数调用前后的数据帧df
相同
注意:我不想做df['E'] = [1, 1, 1]
,因为我不知道要向df
添加多少列。因此,如果可能的话,我想使用pd.concat()
...
答案 0 :(得分:1)
只要新数据包含的行数与原始数据相同,并且列名没有冲突,这将在适当位置编辑原始DataFrame并提供所需的输出。
与您的df['E'] = [1, 1, 1]
建议相同,只是它适用于任意数量的列。
我不认为有一种方法可以使用pd.concat
来实现,因为它没有像某些Pandas函数那样具有inplace
参数。
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [10, 20, 30], 'D': [40, 50, 60]})
df[df2.columns] = df2
结果(df
):
A B C D
0 1 4 10 40
1 2 5 20 50
2 3 6 30 60