
都可以一行一行地读出数据
| 方法 | 索引 | 返回数据 | 速度 |
|---|---|---|---|
| iterrows() | 有索引 | 133秒 | |
| itertuples() | 有索引 | 3秒 | |
| zip() | 没有索引 | 1秒 |
import numpy as npimport pandas as pddf= 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 b0 0 101 1 112 2 123 3 134 4 145 5 156 6 167 7 178 8 189 9 190a 0b 10Name: 0, dtype: int64101a 1b 11Name: 1, dtype: int64112a 2b 12Name: 2, dtype: int64123a 3b 13Name: 3, dtype: int64134a 4b 14Name: 4, dtype: int64145a 5b 15Name: 5, dtype: int64156a 6b 16Name: 6, dtype: int64167a 7b 17Name: 7, dtype: int64178a 8b 18Name: 8, dtype: int64189a 9b 19Name: 9, dtype: int6419a b 修改值的列0 0 10 new_data1 1 11 new_data2 2 12 new_data3 3 13 new_data4 4 14 new_data5 5 15 new_data6 6 16 new_data7 7 17 new_data8 8 18 new_data9 9 19 new_data
df= pd.DataFrame({'a': range(0, 10000), 'b': range(10000, 20000)})count=0for tup in df.itertuples():print(tup)print(tup.b)print(tup[0])print(tup[1::])print(type(tup[1:]))count+=1if count>5:break
Pandas(Index=0, a=0, b=10000)100000(0, 10000)<class 'tuple'>Pandas(Index=1, a=1, b=10001)100011(1, 10001)<class 'tuple'>Pandas(Index=2, a=2, b=10002)100022(2, 10002)<class 'tuple'>Pandas(Index=3, a=3, b=10003)100033(3, 10003)<class 'tuple'>Pandas(Index=4, a=4, b=10004)100044(4, 10004)<class 'tuple'>Pandas(Index=5, a=5, b=10005)100055(5, 10005)<class 'tuple'>
df= pd.DataFrame({'a': range(0, 10000), 'b': range(10000, 20000)})count=0for tup in zip(df['a'], df['b']):print(tup)print(type(tup[1:]))count+=1if 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'>