我有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列,并找到该值存在的第一个实例(最左侧)的列名
您可以在将列与datframe的切片进行比较后使用idxmax
on (使用)axis=1
Value
.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]
值,则可以使用:
m = df.loc[:,'A':'F']
df['Value_Col'] = m.isin(df['Value']).dot(m.columns).str[0]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句