我有一个数据框架,其中许多指标列都包含浮点输出.我需要将它们四舍五入到四位数.我想遍历所有列以执行此操作.
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 举报,一经查实,本站将立刻删除。