1、构建dataframe
df = pd.DataFrame([('E146', 100.92, '[-inf ~ -999998.0]'),('E138', 107.92, '[-999998.0 ~ 2]'),('E095', 116.92, '[1.5 ~ 3.5]')],columns = ['name', 'score', 'value'])
Out[11]:
name score value
0 E146 100.92 [-inf ~ -999998.0]
1 E138 107.92 [-999998.0 ~ 2]
2 E095 116.92 [1.5 ~ 3.5]
2、逐行操作,其实就是调用DataFrame的iterrows()函数
for row_index, row in df.iterrows():
print('行号:', row_index)
print('第{} 行的值: '.format(row_index))
print(row)
print('第{} 行 value 列的值: '.format(row_index), row['value'])
结果:
行号: 0
第0 行的值:
name E146
score 100.92
value [-inf ~ -999998.0]
Name: 0, dtype: object
第0 行 value 列的值: [-inf ~ -999998.0]
行号: 1
第1 行的值:
name E138
score 107.92
value [-999998.0 ~ 2]
Name: 1, dtype: object
第1 行 value 列的值: [-999998.0 ~ 2]
行号: 2
第2 行的值:
name E095
score 116.92
value [1.5 ~ 3.5]
Name: 2, dtype: object
第2 行 value 列的值: [1.5 ~ 3.5]
3、逐列操作,其实就是调用DataFrame的iteritems()函数
for col_index, col_value in df.iteritems():
print('列名:', col_index)
print('{} 列的值:'.format(col_index))
print(col_value)
结果:
列名: name
name 列的值:
0 E146
1 E138
2 E095
Name: name, dtype: object
列名: score
score 列的值:
0 100.92
1 107.92
2 116.92
Name: score, dtype: float64
列名: value
value 列的值:
0 [-inf ~ -999998.0]
1 [-999998.0 ~ 2]
2 [1.5 ~ 3.5]
Name: value, dtype: object
总结:
df.iterrows() 是取出df的每一行
df.iteritems() 是取出df的每一列
ps:如果df比较大。建议不要使用如上方式。考虑使用df的map()、apply()、applymap()等方法