[英]Pandas Dataframe Lookup using partial column name
嗨,我正在嘗試使用 Dataframe 中的值從選定列中查找值。 我的查找值需要確定它與所選列中的哪個列名匹配,例如下面我只想考慮在我的 vlookup 中以 JT 結尾的列。
dataframe 示例:
計划1_JT | 計划2_JT | 計划3_JT | 計划1_T | 計划2_T | 捷通 |
---|---|---|---|---|---|
89 | 67 | 25 | 67 | 90 | 計划1 |
9 | 45 | 7 | 6 | 5 | 計划3 |
45 | 3 | 2 | 6 | 23 | 計划1 |
結果:
計划1_JT | 計划2_JT | 計划3_JT | 計划1_T | 計划2_T | 捷通 | 計划_JT |
---|---|---|---|---|---|---|
89 | 67 | 25 | 67 | 90 | 計划1 | 89 |
9 | 45 | 7 | 6 | 5 | 計划3 | 7 |
45 | 3 | 2 | 6 | 23 | 計划1 | 45 |
示例代碼:
df2['Plan_JT'].astype(str)=df2.loc[:,('Plan1_JT','Plan2_JT','Plan3_JT')].str.contains.iloc[1:5]
使用DataFrame.lookup
的舊 pandas 版本的解決方案:
df['new'] = df.lookup(df.index, df['JT'] + '_JT')
print (df)
Plan1_JT Plan2_JT Plan3_JT Plan1_T Plan2_T JT new
0 89 67 25 67 90 Plan1 89
1 9 45 7 6 5 Plan3 7
2 45 3 2 6 23 Plan1 45
對於DataFrame.melt
的最新版本:
melt = df.melt('JT', ignore_index=False)
df['new'] = melt.loc[melt['JT'] + '_JT' == melt['variable'], 'value']
print (df)
Plan1_JT Plan2_JT Plan3_JT Plan1_T Plan2_T JT new
0 89 67 25 67 90 Plan1 89
1 9 45 7 6 5 Plan3 7
2 45 3 2 6 23 Plan1 45
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.