我想将DataFrame中的一些不规则值转为零。
例如,
import pandas as pd
df1=pd.DataFrame({'product':['a','b','c','d','e','f','g'],'price':[1,2,3,4,5,6,7],'label':['h','i','j','k','L','n','m']})
print(df1)
我想将红色值更改为零。 (没有规律性)
如何指定列/行并更改值?
如果你能告诉我怎么做,我会非常感激。
答案 0 :(得分:3)
您可以执行以下任何一种操作。
第一种方法:使用loc[]
df1.loc[1, 'price'] = 0
df1.loc[2, 'price'] = 0
df1.loc[3, 'product'] = 0
df1.loc[5, 'label'] = 0
第二种方法:使用set_value()
df1.set_value(1, 'price', 0)
df1.set_value(2, 'price', 0)
df1.set_value(3, 'product', 0)
df1.set_value(5, 'label', 0)
第三种方法:
df1['price'][1] = 0
df1['price'][2] = 0
df1['product'][3] = 0
df1['label'][5] = 0
第三种方法可能不是最佳方法,因为您会收到警告信息。请参阅此stackoverflow post以详细了解警告消息。但在所有情况下,您都会获得所需的输出。
答案 1 :(得分:2)
以下是如何在数据框内设置或更改元素的一般情况:
df1['price'][1] = 5
其中dataFrame是存储数据帧的变量名,keyName是键的名称,elementIndex是元素的从0开始的索引ID。
以免你想改变价值' 2'在(1,价格)到' 5'。这就是代码:
{{1}}
希望这有帮助!
答案 2 :(得分:2)
使用set_value
:
df1.set_value(1,'price', 0)
print (df1)
输出:
label price product
0 h 1 a
1 i 0 b
2 j 3 c
3 k 4 d
4 L 5 e
5 n 6 f
6 m 7 g
另一种方式是:
df1.loc[1, 'price'] = 0