pandas-基于不是特定索引整数和列值的设置值

时间:2019-05-29 01:24:34

标签: pandas dataframe filter

假设我有一个datafrate df1:

   Color Saturation Letter
0  red        90       B
7  green      90       B
2  blue       90       A
7  red        90       B
2  green      90       B
7  red        90       A

,并且我只想为索引不等于Saturation1等于{{1的行}设置7的值等于Letter }}

这样我们就可以得到:

A

这怎么可能? 我尝试过      Color Saturation Letter 0 red 90 B 7 green 90 B 2 blue 1 A 7 red 90 B 2 green 90 B 7 red 90 A df.loc[df['Letter']=='A' & df.index != 7, 'Saturation'] =1,但我似乎无法正确指出“非索引”。

2 个答案:

答案 0 :(得分:2)

使用.loc

df.loc[(df.Letter=='A')&~(df.index==7),'Saturation ']=1

答案 1 :(得分:0)

发布问题后,我就确定了答案:

df.loc[df['Letter']==A & ~df.index.isin([7]), "Saturation"] =1