python - 在 Pandas 中舍入一列

标签 python pandas

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

>>> print(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 给出的一系列值。 因此返回类型是一个系列。 您需要将该系列分配回数据框(或具有相同索引的另一个数据框)。

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

>>> df.value1 = df.value1.round()
>>> print df
  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/

相关文章:

python - 使用 pandas 比较两个 Excel 文件

python - Tweepy 写入文本文件

python:从PNG转换为JPG而不使用PIL将文件保存到磁盘

python - pip install pandas 导致错误(Python3.8、Pycharm、Apple Silicon)

python - 在 Pandas 中按项目分组并每小时计算项目数

python - 计算numpy数组的周长

Python - 列表元素以某种方式被覆盖

python - 在 Python 3.3.2 上使用 Pandas 0.12.0 和 Matplotlib 1.3.1 绘制包含 NaN 的 DataFrame 时出错

python - Pandas源码导入多个模块

python-2.7 - Python 数据帧在微秒内重新采样