有没有办法在 Pandas 中舍入单个列而不影响数据框的其余部分?

 df:
      item  value1  value2
    0    a    1.12     1.3
    1    a    1.50     2.5
    2    a    0.10     0.0
    3    b    3.30    -1.0
    4    b    4.80    -1.0

df.value1.apply(np.round)

0    1
1    2
2    0
3    3
4    5
5    5

使数据看起来像这样的正确方法是什么:
  item  value1  value2
0    a       1     1.3
1    a       2     2.5
2    a       0     0.0
3    b       3    -1.0
4    b       5    -1.0
5    c       5     5.0

最佳答案

你很亲密
您将回合应用于df.value1给定的一系列值。
因此,返回类型为Series。
您需要将该系列分配回该数据框(或具有相同索引的另一个数据框)。

另外,还有一种 pandas.Series.round 方法,基本上是pandas.Series.apply(np.round)的简写形式。

In[2]:
    df.value1 = df.value1.round()
    print df

Out[2]:
    item  value1  value2
    0    a       1     1.3
    1    a       2     2.5
    2    a       0     0.0
    3    b       3    -1.0
    4    b       5    -1.0

关于python - 在 Pandas 中绕一列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26133538/

10-12 18:34