簡體   English   中英

如何在索引不匹配時將 dataframe 中的 2 列添加到另一列

[英]how to Add 2 columns from a dataframe to another while indexes do Not match

我有 2 個長度不同的數據幀。 第一個有 1200 行,另一個只有 1 第一個是這樣的。

           Date       Open       High        Low      Close  Adj Close  Volume
       2012-01-09  70.40 50.20  9.40      71.5          1.8      1.8       9447.0

第二個看起來像這樣

Name  Marcet Cap.   Symbol   Symbol2    Boerse Info.   Periode    ISIN         WKN 
Once      1         tpp.us     NaN             1          5Y    US010001      999000      

我只想在第一列中添加(附加)2 列,它們是 ISIN 和 WKN。

          Date       Open       High      Low      Close  Adj Close  Volume  ISIN   WKN  
       2012-01-09  70.40 50.20  9.40      71.5     1.8      1.8       944   US0101 999000            

我已經嘗試過 Merge() 和 Concat,但是我得到了一個 KeyError,我也嘗試了這個,但它不起作用。

first['ISIN']=second['ISIN'].values

如何將 2 列添加到另一個 DF?

通過values[0]而不是values賦值

import pandas as pd
import io

data_string = """ Date       Open       High        Low      Close  Adj_Close  Volume
       2012-01-09  70.40 50.20  9.40      71.5          1.8             9447.0
       2012-01-10  70.40 50.20  9.40      71.5          1.8             9447.0"""

first = pd.read_csv(io.StringIO(data_string), sep='\s+')

data_string = """Name  Marcet_Cap.   Symbol   Symbol2    Boerse_Info.   Periode    ISIN         WKN 
Once      1         tpp.us     NaN             1          5Y    US010001      999000  """
second = pd.read_csv(io.StringIO(data_string), sep='\s+')

first['ISIN'] = second['ISIN'].values[0]  # work
first['WKN'] = second['WKN'].values[0]  # work

print(first)  # print sample result
         Date  Open  High  Low  Close  Adj_Close  Volume      ISIN     WKN
0  2012-01-09  70.4  50.2  9.4   71.5        1.8  9447.0  US010001  999000
1  2012-01-10  70.4  50.2  9.4   71.5        1.8  9447.0  US010001  999000

正如我正確理解的那樣,您有 2 個數據框。 第一個 Dataframe 有 1200 行 第二個 Dataframe 有 1 行

並且您想在第一個 dataframe 中添加 2 個新列,這些列的值應該是第二個 dataframe 的最后兩列的值。

因為數據幀有不同的行數,首先你應該創建 2 個與第一個 dataframe 大小相同的列表,然后添加到第一個。

col1 = [seconddataframe['ISIN'][0] for i in range(len(firstdataframe))]

col2 = [seconddataframe['WKN'][0] for i in range(len(firstdataframe))]

第一個數據幀['ISIN'] = col1

第一個數據幀['WKN'] = col2

只需將兩個數據框的名稱放在正確的位置即可。 我希望它有幫助

最好的祝願

暫無
暫無

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

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