Python 创建一个数组,该数组由标题替换为1,每行跳过0
其中a、b和c是标题 我有上面显示的数据框,我需要以下格式的结果:Python 创建一个数组,该数组由标题替换为1,每行跳过0,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,其中a、b和c是标题 我有上面显示的数据框,我需要以下格式的结果: a b c 1 1 0 0 0 1 1 0 1 如您所见,值为1的标题将出现,值为0(零)的标题将被跳过。这里有一种方法 [[a,b], [c], [a,c]] 对于值数组,请使用.values In [96]: df.astype(bool).apply(lambda x: df.columns[x.tolist()].toli
a b c
1 1 0
0 0 1
1 0 1
如您所见,值为1的标题将出现,值为0(零)的标题将被跳过。这里有一种方法
[[a,b],
[c],
[a,c]]
对于值数组,请使用.values
In [96]: df.astype(bool).apply(lambda x: df.columns[x.tolist()].tolist(), axis=1)
Out[96]:
0 [a, b]
1 [c]
2 [a, c]
dtype: object
或者,使用iterrows
In [102]: df.astype(bool).apply(lambda x: df.columns[x.tolist()].tolist(), axis=1)
...: .values
Out[102]: array([['a', 'b'], ['c'], ['a', 'c']], dtype=object)
输出:
main_list = []
for ind in df.index:
sublist = []
for column in df.columns:
if df.loc[ind, column]:
sublist.append(column)
main_list.append(sublist)
希望能有帮助
main_list = []
for ind in df.index:
sublist = []
for column in df.columns:
if df.loc[ind, column]:
sublist.append(column)
main_list.append(sublist)
[['a', 'b'], ['c'], ['a', 'c']]