如何复制到列的范围而不是列表?

时间:2017-03-24 19:28:48

标签: python-3.x pandas

我希望在数据框中添加几列。

让我说我从这开始:

import pandas as pd

dfX = pd.DataFrame({'A': [1,2,3,4],'B': [5,6,7,8],'C': [9,10,11,12]})
dfY = pd.DataFrame({'D': [13,14,15,16],'E': [17,18,19,20],'F': [21,22,23,24]})

我可以通过以列表形式定义新列来将dfY列附加到dfX

dfX[[3,4]] = dfY.iloc[:,1:3].copy()

...但我宁愿这样做:

dfX.iloc[:,3:4] = dfY.iloc[:,1:3].copy()

前者的作品!后者执行,不返回任何错误,但不会改变dfX

1 个答案:

答案 0 :(得分:1)

您在寻找

吗?
dfX = pd.concat([dfX, dfY], axis = 1)

返回

    A   B   C   D   E   F
0   1   5   9   13  17  21
1   2   6   10  14  18  22
2   3   7   11  15  19  23
3   4   8   12  16  20  24

你可以在这里添加几个数据帧,如pd.concat([dfX,dfY,dfZ],axis = 1)

如果你需要追加dfY中的D和E列到dfX,请选择

pd.concat([dfX, dfY[['D', 'E']]], axis = 1)