![](/img/trans.png)
[英]How to update a dataframe with values from another dataframe when indexes and columns don't not match
[英]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.