簡體   English   中英

Pandas Dataframe 使用部分列名查找

[英]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.

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