![](/img/trans.png)
[英]how to highlight rows using dataframe and python based on value in a cell?
[英]How to set value to a cell filtered by rows in python DataFrame?
import pandas as pd
df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9],[10,11,12]],columns=['A','B','C'])
df[df['B']%2 ==0]['C'] = 5
我希望此代碼將列 C 的值更改為 5,無論 B 為偶數。 但它不起作用。
它返回表如下
A B C
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12
我期待它回來
A B C
0 1 2 5
1 4 5 6
2 7 8 5
3 10 11 12
如果需要更改DataFrame
中列的DataFrame
是必要的DataFrame.loc
與條件和列名:
df.loc[df['B']%2 ==0, 'C'] = 5
print (df)
A B C
0 1 2 5
1 4 5 6
2 7 8 5
3 10 11 12
您的解決方案是鏈式索引 - docs 的一個很好的例子。
您可以將順序更改為:
df['C'][df['B']%2 == 0] = 5
它也有效
使用 numpy where
df['C'] = np.where(df['B']%2 == 0, 5, df['C'])
輸出
A B C
0 1 2 5
1 4 5 6
2 7 8 5
3 10 11 12
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.