在子函数中与熊猫concat函数并置在一起?

时间:2019-11-16 16:35:08

标签: python pandas

我正在尝试编写一个函数,该函数以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() ...

1 个答案:

答案 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