【问题标题】:Iterate over pandas dataframe rows as pure text以纯文本形式迭代 pandas 数据框行
【发布时间】:2017-07-24 08:38:16
【问题描述】:
我想逐行读取数据框(包含推文)以分析文本。
import csv
import pandas as pd
df = pd.read_csv('tweets2.csv')
df.head()
for row in df.iterrows():
print (row)
我写的这段代码不能完成这项工作,因为“行”还包括索引。相反,我想要简单的文本,我将进一步处理。
【问题讨论】:
标签:
python
loops
dataframe
text
row
【解决方案1】:
你可以使用df.values:
for row in df.values:
print(row)
例子:
df = pd.DataFrame({'Col1': [1, 2, 3, 4, 5], 'Col2' : ['a', 'b', 'c', 'd', 'e']})
print(df)
Col1 Col2
0 1 a
1 2 b
2 3 c
3 4 d
4 5 e
for row in df.values:
print(row)
[1 'a']
[2 'b']
[3 'c']
[4 'd']
[5 'e']
【解决方案2】:
iterrows yields (index, Series) pairs
所以你可以在 for 循环中解压它们:
for i, row in df.iterrows():
print(row)
如果您不使用i,则应将其更改为_。
使用iterrows,每个row 是一个Series。如@cᴏʟᴅsᴘᴇᴇᴅ 所示,另一种方法是使用values:
for row in df.values:
print(row)
使用此方法,每个 row 都是一个 numpy 数组(因此会丢失标签)。