Python 3.x 如何复制到列的范围而不是列表?
我希望在一个数据帧中附加几列 假设我从这个开始:Python 3.x 如何复制到列的范围而不是列表?,python-3.x,pandas,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:
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。您在寻找什么
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向dfX追加D和E列,请选择
pd.concat([dfX, dfY[['D', 'E']]], axis = 1)
以下是我的结论:dfX=pd.concat[dfX,dfY.iloc[:,1:3]],axis=1