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。在其他情况下,任何缺少的行或甚至不同的顺序都会弄乱生成的数据帧。