使用python更改特定pandas数据框列中的行值

Sai*_*ham 4 python dataframe pandas

以下问题.

我有一个具有以下格式的数据框.

   Col1 Col2 Col3 Col4  
1    0    0    0    0
2    0    0    0    0
Run Code Online (Sandbox Code Playgroud)

此外,我有一个与列名匹配的值列表:

ColNameList1 = [Col1, Col3] #list for the first row
ColNameList2 = [Col3, Col4] #list for the second row
Run Code Online (Sandbox Code Playgroud)

目标是将每个列匹配的值0更改为1.

    Col1 Col2 Col3 Col4  
1    1    0    1    0 
2    0    0    1    1
Run Code Online (Sandbox Code Playgroud)

我对Pandas文档以及google和堆栈溢出做了一些深入的研究,但似乎没有适合这个问题的解决方案.

一如往常,任何帮助都非常感谢.

All*_*len 11

您只需使用loc和set值:

df.loc[1,ColNameList1]=1

df.loc[2,ColNameList2]=1

df
Out[10]: 
   Col1  Col2  Col3  Col4
1     1     0     1     0
2     0     0     1     1
Run Code Online (Sandbox Code Playgroud)

  • 2个问题:a :)你做不到df = df.loc [1,ColNameList2] = 1,只做df.loc [1,ColNameList2] = 1.b :)在您的示例数据中,df索引基于此处为1,它看起来基于0.如果它基于0,则需要分别使用df.loc [0]和df.loc [1]. (4认同)