📜  对于 pandas 列中的每个值 - Python (1)

📅  最后修改于: 2023-12-03 15:09:28.206000             🧑  作者: Mango

对于 pandas 列中的每个值 - Python

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 数组,然后再进行遍历。这样可以提高代码的执行效率。