我需要一个包含每个索引的所有特定元素列的列表。例如,这个数据框:
>>> df
1 2 3 4 5
2016-01-27 A B B I I
2016-03-07 A C D U U
2016-04-12 H A V V V
2016-05-02 B L Y S N
2016-05-23 L N N A S
输入“A”我想将此列表作为输出:
[1,1,2,NaN,4]
有内置方法吗?
编辑:在原始表格中,一行中的所有项目都是唯一的,当编辑原始表格以使其不那么“密集”地发布到此处时,我犯了这个错误,抱歉。
最佳答案
您可能希望将数据框融化
为长格式,然后计算每个输入(值)对应的列列表,按如下方式获得系列后,您可以轻松地查询结果以获取任何预期的输入:
import pandas as pd
pd.melt(df).groupby('value').variable.apply(list)
#value
#A [1, 1, 2, 4]
#B [1, 2, 3]
#C [2]
#D [3]
#H [1]
#I [4, 5]
#L [1, 2]
#N [2, 3, 5]
#S [4, 5]
#U [4, 5]
#V [3, 4, 5]
#Y [3]
#Name: variable, dtype: object
获取输入A
的列列表:
result = pd.melt(df).groupby('value').variable.apply(list)
result['A']
# ['1', '1', '2', '4']
关于python - 从 Pandas DataFrame 获取包含元素列的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40366943/