如何在Pandas中将DataFrame的行迭代为Series?

时间:2016-09-05 14:48:36

标签: loops pandas dataframe series

如何迭代Intent intent=new Intent(); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse(feedItem.getTRAILER_KEY_STRING())); getContext().startActivity(intent); 中的行?出于某种原因DataFrame正在返回元组而不是iterrows()。我也明白这不是使用Pandas的有效方式。

2 个答案:

答案 0 :(得分:2)

使用:

s = pd.Series([0,1,2])

for i in s: 
    print (i)
0
1
2

DataFrame

df = pd.DataFrame({'a':[0,1,2], 'b':[4,5,8]})
print (df)
   a  b
0  0  4
1  1  5
2  2  8

for i,s in df.iterrows():
    print (s)

a    0
b    4
Name: 0, dtype: int64
a    1
b    5
Name: 1, dtype: int64
a    2
b    8
Name: 2, dtype: int64

答案 1 :(得分:1)

  

如何迭代DataFrame中的行?出于某种原因,iterrows()返回元组而不是系列。

元组中的第二个条目是系列:

In [9]: df = pd.DataFrame({'a': range(4), 'b': range(2, 6)})

In [10]: for r in df.iterrows():
    print r[1], type(r[1])
   ....:     
a    0
b    2
Name: 0, dtype: int64 <class 'pandas.core.series.Series'>
a    1
b    3
Name: 1, dtype: int64 <class 'pandas.core.series.Series'>
a    2
b    4
Name: 2, dtype: int64 <class 'pandas.core.series.Series'>
a    3
b    5
Name: 3, dtype: int64 <class 'pandas.core.series.Series'>
  

我也明白这不是使用Pandas的有效方法。

总的来说,这是事实,但问题有点过于笼统。您需要指定尝试迭代DataFrame的原因。