微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-如何循环通过数据帧中的列?

我有一个数据框架,其中许多指标列都包含浮点输出.我需要将它们四舍五入到四位数.我想遍历所有列以执行此操作.

import numpy as np
import pandas as pd

test_df = pd.DataFrame(np.random.randn(10,4), columns=['a','b','c','d'])

metrics = test_df.columns
metrics = metrics.tolist()

for x in metrics:
    test_df.x = np.round(test_df.x, 4)

但是,这给了我错误

AttributeError: 'DataFrame' object has no attribute 'x'

最好的方法是什么?

解决方法:

import functools
test_df.apply(functools.partial(np.round, decimals=4))

如果要遍历各列,则很简单:

for c in test_df.columns:
    test_df[c] = np.round(test_df[c], 4)

您尝试执行的操作与python中的属性访问有关.当您尝试执行test_df.x时,该x与for循环中的x绝对无关.这将具有相同的结果:

for unused_value in metrics:
    test_df.x = ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐