for循环以获取Pandas中的数据框
我正在尝试使用 for 循环在数据框中获取某些数据。但是当我运行循环时,我得到的只是数据的索引,而不是行中显示的值
import pandas as pd
import numpy as np
data = {'time' : [1,2,3,4,5,6,7,8,9,10,11,12], 'values'[290,260,288,300,310,303,329,340,316,330,308,310]}
df = pd.DataFrame(data)
for i in df:
print(i)
我只得到索引而不是值
我也试过:
for index , values in df:
print(values)
它给了我这个错误:
无法解包不可迭代的 int 对象
我知道 iterrows 给我行,但我希望它作为一个完整的数据框而不是每一行
回答
尝试使用DataFrame.iterrows():
for index,row in df.iterrows():
print(row)
# each row is a pd.Series object so to access any values call row['column_name']
time,value = row['time'],row['value']
print(time,value)
注意:
无论如何我想评论一下,不建议在 Pandas 中使用这种类型的操作,因为它是一种非矢量化的解决方案,与矢量化操作相比缺乏性能,我建议你在互联网上寻找矢量化......好运气 :)