Pandas数据分析面试基础题(六)

344 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

本篇文章的试题主要涉及 Dataframe 的修改操作,包括值的修改、索引列名的修改等等。

试题一:如何修改 DataFrame 的值?

(难度:easy)

分析

前面说如何对 DataFrame 数据进行查询的时候,提到了loc、iloc、at、iat等方法可以查询 Dataframe 某个位置的 数据,修改实际上就是先定位某个位置的数据,然后对数据进行修改即可。
代码
还是以之前的 Dataframe 数据为例:

image.png

# 对索引为2的行进行修改
df.loc[2:2,('name','score')]=['name_two', 100]
# 对第0行到第1行进行修改
df.loc[0:1,('name','score')]=[['name_one', 100],['name_two', 100]]
# 对class列进行修改
df.loc[:, ('class')]=[9,9,9,9,9]

通过上面我们可以看出,修改 Dataframe 数据的话,只需定位到要修改数据的位置,然后重新进行赋值即可,同理,iloc、at、iat修改数据的使用方法也一样,就不做一一赘述了。

试题二:如何修改 DataFrame 的索引/列名?

(难度:easy)

分析

使用rename()方法,既可以修改行索引,也可以修改列索引。 使用方法如下:

# 修改指定列索引
df.rename(columns={'score':'score_new'}, inplace=True)
df
# 修改指定行索引
df.rename({0:'zero'}, inplace=True)
df

rename()方法默认修改行索引,指定columns={}表示修改列索引,参数inplace=True表示在原来的 DataFrame 上进行修改。

除此之外,还可以使用df.columns=xx的方式对 DataFrame 的列名进行重新赋值,使用如下:

# 修改全部列名
df.columns=['id_new','name_new','score_new','class_new']
df

但是这种方式仅支持全部更改,不支持修改部分,比较暴力,一般不采用。

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !