簡體   English   中英

將一列從一個 pandas dataframe 復制到另一個

[英]Copying a column from one pandas dataframe to another

我有以下代碼,我嘗試將 EXPIRATION 從最近的 dataframe 復制到目標 dataframe 中的 EXPIRATION 列:

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)

問題是目標的行數少於最近的行,因此最近的 EXPIRATION 列中的一些較低行不會最終出現在目標 dataframe 中。 我希望最近的所有 EXPIRATION 值都在目標 dataframe 中,即使所有其他值都是 NaN。

示例 Output:

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 列,並且目標中只有 Nans,所以如果您確定排序不是問題,您可以使用:

>>> destination = pd.concat([recent,destination[['EXPIRATION']]], ignore_index=True, axis=1)

 Unnamed: 0  IGNORE  DATE_TRADE  DIRECTION  EXPIRATION     ...
0         NaN     NaN         NaN        NaN  08/06/2021   ...
1         NaN     NaN         NaN        NaN  16/06/2021   ...
2         NaN     NaN         NaN        NaN  16/06/2021   ...
3         NaN     NaN         NaN        NaN  22/06/2021   ...
4         NaN     NaN         NaN        NaN  26/06/2021   ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM