我有一個資料框 DF3 :
zone_id combine
0 ABD
10 BCD
20 ABC
30 ABE
和第二個資料框:combinaison_df:
zone_id combine
0 XYZ
10 BCD
20 ABD
30 ABC
40 DEF
我想在 combinaison_df 資料框中添加一個新列 DF3_index ,其中包含 DF3 中每個組合值的索引。
這里是預期結果的例子:
zone_id combine DF3_index
0 XYZ NaN
10 BCD 1
20 ABD 0
30 ABC 2
40 DEF NaN
我嘗試使用此代碼添加 DF3_index 列:for i in len(combinaison_df):
DF3.index[DF3['combine'].str.contains(combinaison_df['combine'][i], regex=False)].tolist()
但我收到了這個錯誤:
3 DF3.index[DF3['combine'].str.contains(combinaison_df['combine'][i], regex=False)].tolist()
TypeError: 'int' object is not iterable
你能幫我解決這個錯誤嗎?
謝謝
uj5u.com熱心網友回復:
你認為這會奏效嗎?:
DF3['DF3_index']=DF3.index
combinaison_df=pd.merge(combinaison_df,DF3[['combine','DF3_index']],
on=['combine'],how='left')
輸出:
print(combinaison_df)
zone_id combine DF3_index
0 0 XYZ NaN
1 10 BCD 1.0
2 20 ABD 0.0
3 30 ABC 2.0
4 40 DEF NaN
uj5u.com熱心網友回復:
s = DF3.reset_index(drop=True)["combine"].to_dict()
s = dict(zip(s.values(),s.keys()))
import numpy as np
combinaison_df.apply(lambda x: int(s[x["combine"]]) if x["combine"] in s else np.nan, axis=1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/474513.html
上一篇:R輸出矩陣索引與資料框中的值
