如何在dataframe中指定列和行

时间:2017-02-24 00:06:29

标签: python pandas

我想将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)

我想将红色值更改为零。 (没有规律性)

如何指定列/行并更改值?

enter image description here

如果你能告诉我怎么做,我会非常感激。

3 个答案:

答案 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