Bar*_*rry 5 python python-2.7 pandas
我正在尝试遍历包含一些int64和一些浮点数的DataFrame的行。iterrows()
似乎把我的想法变成了浮点数,这打破了我想在下游做的一切:
>>> import pandas as pd
>>> df = pd.DataFrame([[10000000000000001, 1.5], [10000000000000002, 2.5]], columns=['id', 'prc'])
>>> [id for id in df.id]
[10000000000000001, 10000000000000002]
>>> [r['id'] for (idx,r) in df.iterrows()]
[10000000000000000.0, 10000000000000002.0]
Run Code Online (Sandbox Code Playgroud)
直接迭代就可以了df.id
。但是通过iterrows()
,我得到了不同的值。有没有一种方法可以遍历行,使得我仍然可以按列名索引并获得所有正确的值?
这是文档的相关部分:
因为 iterrows 为每一行返回一个系列,它不保留跨行的 dtypes(跨列保留 DataFrames 的 dtypes)[...] 要在遍历行时保留dtypes,最好使用 itertuples() 返回值的命名元组,通常比 iterrows 更快。
您的数据示例:
>>> df = pd.DataFrame([[10000000000000001, 1.5], [10000000000000002, 2.5]], columns=['id', 'prc'])
>>> [t[1] for t in df.itertuples()]
>>> [10000000000000001, 10000000000000002]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1290 次 |
最近记录: |