Python 将列从一个数据帧复制到另一个数据帧

Python 将列从一个数据帧复制到另一个数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下代码,尝试将最近的数据帧中的过期数据复制到目标数据帧中的过期列: recent = pd.read_excel(r'Y:\Attachments' + '\\' + '962021.xlsx') print('HERE\n',recent) print('HERE2\n', recent['EXPIRATION']) destination= pd.read_excel(r'Y:\Attachments' + '\\' + 'Book1.xlsx') print('HERE3\n', d

我有以下代码,尝试将最近的数据帧中的过期数据复制到目标数据帧中的过期列:

recent = pd.read_excel(r'Y:\Attachments' + '\\' + '962021.xlsx')
print('HERE\n',recent)
print('HERE2\n', recent['EXPIRATION'])
destination= pd.read_excel(r'Y:\Attachments' + '\\' + 'Book1.xlsx')
print('HERE3\n', destination)
destination['EXPIRATION']= recent['EXPIRATION']
print('HERE4\n', destination)
问题是目标的行数少于最近的行数,因此最近的过期列中较低的一些行不会在目标数据帧中结束。我希望最近的所有过期值都在目标数据帧中,即使所有其他值都是NaN

示例输出:

HERE
    Unnamed: 0  IGNORE DATE_TRADE DIRECTION  EXPIRATION      NAME OPTION_TYPE  PRICE  QUANTITY     STRATEGY  STRIKE TIME_TRADE TYPE UNDERLYING
0           0      21   6/9/2021         B  08/06/2021  BNP FP E           C     12        12      CONDORI      12    9:23:40  ETF     NASDAQ
1           1      22   6/9/2021         B  16/06/2021  BNP FP E           P     12        12  GOLD/SILVER      12    10:9:19  ETF     NASDAQ
2           2      23   6/9/2021         B  16/06/2021      TEST           P     12        12      CONDORI      21   10:32:12  EQT       TEST
3           3      24   6/9/2021         B  22/06/2021      TEST           P     12        12  GOLD/SILVER      12    10:35:5  EQT     NASDAQ
4           4       0   6/9/2021         B  26/06/2021      TEST           P     12        12  GOLD/SILVER      12   10:37:11  ETF    FTSE100
HERE2
 0    08/06/2021
1    16/06/2021
2    16/06/2021
3    22/06/2021
4    26/06/2021
Name: EXPIRATION, dtype: object
HERE3
    Unnamed: 0  IGNORE  DATE_TRADE  DIRECTION  EXPIRATION  NAME  OPTION_TYPE  PRICE  QUANTITY  STRATEGY  STRIKE  TIME_TRADE  TYPE  UNDERLYING
0         NaN     NaN         NaN        NaN           2   NaN          NaN    NaN       NaN       NaN     NaN         NaN   NaN         NaN
1         NaN     NaN         NaN        NaN           1   NaN          NaN    NaN       NaN       NaN     NaN         NaN   NaN         NaN
2         NaN     NaN         NaN        NaN           3   NaN          NaN    NaN       NaN       NaN     NaN         NaN   NaN         NaN
HERE4
    Unnamed: 0  IGNORE  DATE_TRADE  DIRECTION  EXPIRATION  NAME  OPTION_TYPE  PRICE  QUANTITY  STRATEGY  STRIKE  TIME_TRADE  TYPE  UNDERLYING
0         NaN     NaN         NaN        NaN  08/06/2021   NaN          NaN    NaN       NaN       NaN     NaN         NaN   NaN         NaN
1         NaN     NaN         NaN        NaN  16/06/2021   NaN          NaN    NaN       NaN       NaN     NaN         NaN   NaN         NaN
2         NaN     NaN         NaN        NaN  16/06/2021   NaN          NaN    NaN       NaN       NaN     NaN         NaN   NaN         NaN

加入通常是最好的方法,但我发现除了本机pandas索引之外,您没有id列,并且目的地中只有NAN,因此如果您确定排序没有问题,您可以使用:

>>destination=pd.concat([最近,destination[['EXPIRATION']],ignore_index=True,axis=1)
未命名:0忽略日期\交易方向到期。。。
0楠楠08/06/2021。。。
1楠楠2021年6月16日。。。
2楠楠2021年6月16日。。。
3楠楠2021年6月22日。。。
4楠楠2021年6月26日。。。

也许您正在寻找使用
pd的某种外部接头。concat
axis=1
是一种很好的方法,只要您知道索引是正确的!当然,只要您有一个ID列,就建议使用join。在其他情况下,任何缺少的行或甚至不同的顺序都会弄乱生成的数据帧。