for循环获取pandas中的数据框
for loop to get the dataframe in 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 中使用这种类型的操作,因为它是一种非矢量化解决方案,与矢量化操作相比缺乏性能,我建议你在互联网上寻找矢量化.. .祝你好运:)
您还可以使用 df.values
遍历 DataFrame
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.from_dict(data)
>>> for i in df.values:
... print(i)
...
[ 1 290]
[ 2 260]
[ 3 288]
[ 4 300]
[ 5 310]
[ 6 303]
[ 7 329]
[ 8 340]
[ 9 316]
[ 10 330]
[ 11 308]
[ 12 310]
此外,您可以根据列的 indexes
过滤所需的行
试试这个:
for ind in df.index:
print(list(df[col][ind] for col in df.columns))
这段代码按行打印数据
我正在尝试使用 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 中使用这种类型的操作,因为它是一种非矢量化解决方案,与矢量化操作相比缺乏性能,我建议你在互联网上寻找矢量化.. .祝你好运:)
您还可以使用 df.values
遍历 DataFrame
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.from_dict(data)
>>> for i in df.values:
... print(i)
...
[ 1 290]
[ 2 260]
[ 3 288]
[ 4 300]
[ 5 310]
[ 6 303]
[ 7 329]
[ 8 340]
[ 9 316]
[ 10 330]
[ 11 308]
[ 12 310]
此外,您可以根据列的 indexes
过滤所需的行
试试这个:
for ind in df.index:
print(list(df[col][ind] for col in df.columns))
这段代码按行打印数据