Pandas 修改pandas dataframe中的部分行
在本文中,我们将简单介绍如何在pandas dataframe中修改部分行的数据。
阅读更多:Pandas 教程
1. 修改单个值
pandas提供了两种方法可以修改单个值:使用loc和iloc
例如,如果我们有以下的pandas dataframe:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'age': [20, 21, 22, 23, 24],
'gender': ['F', 'M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
输出:
name age gender
0 Alice 20 F
1 Bob 21 M
2 Charlie 22 M
3 David 23 M
4 Eva 24 F
我们现在想将第一行的年龄改为19,我们可以使用loc:
df.loc[0, 'age'] = 19
print(df)
输出:
name age gender
0 Alice 19 F
1 Bob 21 M
2 Charlie 22 M
3 David 23 M
4 Eva 24 F
或者使用iloc:
df.iloc[0, 1] = 19
print(df)
输出:
name age gender
0 Alice 19 F
1 Bob 21 M
2 Charlie 22 M
3 David 23 M
4 Eva 24 F
注意:iloc使用的是索引位置而不是标签。
2.修改整列的值
我们可以通过以下方式来修改整列的值:
df['age'] = [20, 19, 22, 23, 24]
print(df)
输出:
name age gender
0 Alice 20 F
1 Bob 19 M
2 Charlie 22 M
3 David 23 M
4 Eva 24 F
3. 修改多列或多行的值
如果我们想修改多列或多行的数据,我们可以使用以下方法:
df.loc[df['name'].isin(['Alice', 'Charlie']), ['age', 'gender']] = [[30, 'M'], [25, 'F']]
print(df)
输出:
name age gender
0 Alice 30 M
1 Bob 19 M
2 Charlie 25 F
3 David 23 M
4 Eva 24 F
我们选择了名字为Alice和Charlie的行,并且选择了age和gender列进行修改。使用isin方法来选择多个名字,使用loc方法将值进行修改。
4. 按条件修改数据
我们还可以按条件来修改数据,例如,我们要将年龄大于21岁的人的性别改成’X’:
df.loc[df['age'] > 21, 'gender'] = 'X'
print(df)
输出:
name age gender
0 Alice 30 X
1 Bob 19 M
2 Charlie 25 X
3 David 23 X
4 Eva 24 X
我们通过使用loc方法和条件来选择要修改的数据。
5. 用函数修改数据
最后,我们也可以使用函数来修改数据。
例如,我们定义一个函数,将年龄小于20岁的人的性别改成’Y’:
def modify(df):
df.loc[df['age'] < 20, 'gender'] = 'Y'
return df
df = modify(df)
print(df)
输出:
name age gender
0 Alice 30 X
1 Bob 19 Y
2 Charlie 25 X
3 David 23 X
4 Eva 24 X
总结
在本文中,我们介绍了pandas dataframe中修改部分行的多种方法,包括使用loc、iloc、修改整列、修改多列或多行、按条件修改和使用函数修改。pandas提供了多种方便的方法来修改数据,使得我们可以高效地进行数据处理和分析。