[英]Find column name in Pandas that contains a specific value in the row from another column
我有 200 多列乘以 10000 多行。 我正在嘗試查找包含行中特定值的列的名稱。 在下面的示例中,特定值位於值列中。 我如何確定“值”列中的值並不重要。
示例: Value_Col 是我試圖返回的值。
Date Time A B C D E F Value Value_Col
Jan1 1245 3.0 3.2 4.6 5.7 2.1 8.0 5.7 D
Jan2 1045 4.5 8.4 3.9 2.2 9.4 8.3 3.9 C
Jan3 1350 1.4 3.3 4.5 8.9 1.4 0.4 1.4 A
我只想搜索 A 到 F 列並找到值存在的第一個實例(最左邊)的列名。 在該示例中,我的興趣值在以 1 月 3 日開始的行中出現了兩次。 我想基本上索引值出現的列名並選擇第一個。 我知道這將是基於為值搜索返回的列表的索引 0(或 [0])。
上面的例子只是一小部分數據。 我目前有一個所有列名稱的列表,我希望在其中進行值搜索。感興趣的值可以通過同一行中的許多列出現。
我只想搜索列 A 到 F 並找到值存在的第一個實例(最左側)的列名
在將Value
列與數據框的切片進行比較后,您可以在axis=1
上使用idxmax
(使用.loc[]
)
df['Value_Col'] = df.loc[:,'A':'F'].isin(df['Value']).idxmax(1)
print(df)
Date Time A B C D E F Value Value_Col
0 Jan1 1245 3.0 3.2 4.6 5.7 2.1 8.0 5.7 D
1 Jan2 1045 4.5 8.4 3.9 2.2 9.4 8.3 3.9 C
2 Jan3 1350 1.4 3.3 4.5 8.9 1.4 0.4 1.4 A
如果有可能沒有列可能包含df['Value]
value ,您可以使用:
m = df.loc[:,'A':'F']
df['Value_Col'] = m.isin(df['Value']).dot(m.columns).str[0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.