我是编码新手,希望在我的工作场所简化一些流程 -
我的数据框如下:
10 月 1 日 | 11 月 1 日 | 日期 |
---|---|---|
不适用 | 不适用 | 10 月 1 日 |
不适用 | 不适用 | 11 月 1 日 |
我希望将列标题与行匹配的值设为 1,如下所示:
10 月 1 日 | 11 月 1 日 | 日期 |
---|---|---|
1 | 空 | 10 月 1 日 |
空 | 1 | 11 月 1 日 |
请帮忙!
答案 0 :(得分:1)
试试:
for col in df.columns[:-1]:
df[col] = np.where((df.Date==col),1,"Null")
df:
1 Oct 1 Nov Date
0 1 Null 1 Oct
1 Null 1 1 Nov
答案 1 :(得分:1)
另一种解决方案可能是使用 crosstab
>>> pd.crosstab(df[df.columns[:-1]], df.Date).set_index(df.columns[:-1])
Date 1 Nov 1 Oct
1 Oct 1 0
1 Nov 0 1