如何从列名和另一个列值中计算行值

时间:2021-01-19 08:07:21

标签: python pandas

我是编码新手,希望在我的工作场所简化一些流程 -

我的数据框如下:

<头>
10 月 1 日 11 月 1 日 日期
不适用 不适用 10 月 1 日
不适用 不适用 11 月 1 日

我希望将列标题与行匹配的值设为 1,如下所示:

<头>
10 月 1 日 11 月 1 日 日期
1 10 月 1 日
1 11 月 1 日

请帮忙!

2 个答案:

答案 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
相关问题