📅  最后修改于: 2023-12-03 15:09:28.206000             🧑  作者: Mango
在 pandas
中,对于列中的每个值都可以使用类似循环的方式进行遍历,可以利用 iterrows()
函数、 apply()
函数或者 for
循环语句。
iterrows()
函数iterrows()
方法使用迭代器返回一个元组,其中第一个元素为行的索引,第二个元素为该行的数据。使用此方法时,需要注意每次迭代返回的数据类型为 pandas.Series
,因此可以使用 .at[]
或者 .iat[]
方法来访问每个元素的值。示例如下:
import pandas as pd
df = pd.DataFrame({'Name':['Tom','Jack','Steve'],'Age':[28,34,29]})
for index, row in df.iterrows():
print(f"Name: {row['Name']}, Age: {row['Age']}")
输出结果如下:
Name: Tom, Age: 28
Name: Jack, Age: 34
Name: Steve, Age: 29
apply()
函数apply()
函数将一个函数应用于序列数据的每个元素,其返回值为一个新的序列数据。在 apply()
函数中,定义一个函数,该函数将每个元素作为输入,并返回转换后的值。示例如下:
import pandas as pd
df = pd.DataFrame({'Name':['Tom','Jack','Steve'],'Age':[28,34,29]})
upper_name = lambda x: x.upper()
df['Upper_Name'] = df['Name'].apply(upper_name)
print(df)
输出结果如下:
Name Age Upper_Name
0 Tom 28 TOM
1 Jack 34 JACK
2 Steve 29 STEVE
for
循环语句for
循环语句可以直接遍历序列数据中的每个元素,并对每个元素进行操作。示例如下:
import pandas as pd
df = pd.DataFrame({'Name':['Tom','Jack','Steve'],'Age':[28,34,29]})
for name in df['Name']:
print(f"Name: {name}")
输出结果如下:
Name: Tom
Name: Jack
Name: Steve
使用 for
循环语句时,需要注意:要想更快地遍历数据中的每个元素,最好将数据转换为 numpy 数组,然后再进行遍历。这样可以提高代码的执行效率。