当前位置:首页 > 行业动态 > 正文

pandas修改单元格内容

在Python中,Pandas是一个强大的数据分析库,它可以帮助我们处理和分析大量的数据,在Pandas中,DataFrame是一个非常常用的数据结构,它类似于一个二维表格,可以存储各种类型的数据,我们需要修改DataFrame中的单元格内容,这时候可以使用Pandas提供的多种方法来实现。

以下是一些常见的修改单元格内容的方法:

1、直接赋值

最直接的方法是直接使用等号(=)为DataFrame的单元格赋值,我们有一个如下的DataFrame:

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)

输出结果:

   A  B
0  1  4
1  2  5
2  3  6

现在我们想要将第1行第2列的单元格值修改为9,可以直接使用等号赋值:

df.iloc[0, 1] = 9
print(df)

输出结果:

   A  B
0  1  9
1  2  5
2  3  6

可以看到,第1行第2列的单元格值已经被成功修改为9。

注意:iloc是Pandas中的一个基于整数位置的索引器,它接受两个参数,分别表示行列的位置,在上面的例子中,iloc[0, 1]表示第1行第2列的单元格。

2、使用at或iat方法

除了使用iloc方法外,我们还可以使用at或iat方法来修改单元格内容,这两个方法的用法类似,但是它们接受的是标签名而不是整数位置,我们想要将列名为’B’的单元格值修改为10,可以使用at方法:

df.at['B', df.index[0]] = 10
print(df)

输出结果:

   A    B
0  1   10
1  2     5
2  3     6

可以看到,列名为’B’的单元格值已经被成功修改为10,注意,这里我们使用了df.index[0]来获取第1行的索引。

我们还可以使用iat方法来实现相同的功能:

df.iat[0, df.columns.get_loc('B')] = 10
print(df)

输出结果:

   A    B
0  1   10
1  2     5
2  3     6

可以看到,列名为’B’的单元格值已经被成功修改为10,注意,这里我们使用了df.columns.get_loc('B')来获取列名为’B’的列索引。

3、使用loc方法修改多行或多列的值

我们需要修改多行或多列的值,此时,我们可以使用loc方法来实现,我们想要将列名为’A’的所有单元格值修改为7,可以使用以下代码:

df.loc[:, 'A'] = 7
print(df)

输出结果:

   A    B
0  7   10
1  7     5
2  7     6

可以看到,列名为’A’的所有单元格值已经被成功修改为7,注意,这里我们使用了:来表示所有行,以及使用了空字符串来表示所有列,由于我们是直接赋值给整个列,因此不需要指定具体的行索引,同样地,我们也可以使用类似的方法来修改多行的值,我们想要将第2行到第4行的所有单元格值修改为8,可以使用以下代码:

df.loc[1:3, 'A'] = 8; df.loc[1:3, 'B'] = 8; print(df) *
0