都可以一行一行地读出数据
方法 | 索引 | 返回数据 | 速度 |
---|---|---|---|
iterrows() | 有索引 | 133秒 | |
itertuples() | 有索引 | 3秒 | |
zip() | 没有索引 | 1秒 |
import numpy as np
import pandas as pd
df= pd.DataFrame({'a': range(0, 10), 'b': range(10, 20)})
print(df)
for index, row in df.iterrows():
print (index)
print (row)
data = str(row['b'])
print(data) # 获得值
df.loc[index, '修改值的列'] = "new_data" # 修改值
print(df)
a b
0 0 10
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
6 6 16
7 7 17
8 8 18
9 9 19
0
a 0
b 10
Name: 0, dtype: int64
10
1
a 1
b 11
Name: 1, dtype: int64
11
2
a 2
b 12
Name: 2, dtype: int64
12
3
a 3
b 13
Name: 3, dtype: int64
13
4
a 4
b 14
Name: 4, dtype: int64
14
5
a 5
b 15
Name: 5, dtype: int64
15
6
a 6
b 16
Name: 6, dtype: int64
16
7
a 7
b 17
Name: 7, dtype: int64
17
8
a 8
b 18
Name: 8, dtype: int64
18
9
a 9
b 19
Name: 9, dtype: int64
19
a b 修改值的列
0 0 10 new_data
1 1 11 new_data
2 2 12 new_data
3 3 13 new_data
4 4 14 new_data
5 5 15 new_data
6 6 16 new_data
7 7 17 new_data
8 8 18 new_data
9 9 19 new_data
df= pd.DataFrame({'a': range(0, 10000), 'b': range(10000, 20000)})
count=0
for tup in df.itertuples():
print(tup)
print(tup.b)
print(tup[0])
print(tup[1::])
print(type(tup[1:]))
count+=1
if count>5:
break
Pandas(Index=0, a=0, b=10000)
10000
0
(0, 10000)
<class 'tuple'>
Pandas(Index=1, a=1, b=10001)
10001
1
(1, 10001)
<class 'tuple'>
Pandas(Index=2, a=2, b=10002)
10002
2
(2, 10002)
<class 'tuple'>
Pandas(Index=3, a=3, b=10003)
10003
3
(3, 10003)
<class 'tuple'>
Pandas(Index=4, a=4, b=10004)
10004
4
(4, 10004)
<class 'tuple'>
Pandas(Index=5, a=5, b=10005)
10005
5
(5, 10005)
<class 'tuple'>
df= pd.DataFrame({'a': range(0, 10000), 'b': range(10000, 20000)})
count=0
for tup in zip(df['a'], df['b']):
print(tup)
print(type(tup[1:]))
count+=1
if count>5:
break
(0, 10000)
<class 'tuple'>
(1, 10001)
<class 'tuple'>
(2, 10002)
<class 'tuple'>
(3, 10003)
<class 'tuple'>
(4, 10004)
<class 'tuple'>
(5, 10005)
<class 'tuple'>