如何在Pandas中重新索引指定列?及修改Series指定索引值
咱们一个一个来解决你的问题哈~
问题1:如何在Pandas中重新索引指定列?
在Pandas里调整列的顺序(也就是重新索引列)其实挺简单的,常用两种方法:
直接指定列顺序
如果你已经明确知道想要的列排列顺序,直接把列名列表传给DataFrame就行,比如:# 假设你的DataFrame是df,想要把列顺序改成['col2', 'col1', 'col3'] df = df[['col2', 'col1', 'col3']]用
reindex()方法
这个方法更灵活,还能处理缺失列(会自动填充NaN),适合需要严格匹配指定列的场景:# 定义你想要的列顺序 desired_columns = ['col2', 'col1', 'col3'] df = df.reindex(columns=desired_columns)要是想保留原DataFrame里不在目标列列表中的列,还能加额外参数,但一般直接指定顺序就够用啦。
问题2:修改Series中的指定索引值
先确认下:你给出的输出确实是Series(subID是索引,下面对应数值,完全符合Series的结构)。要把最后一个索引1018改成13,有两种简单方法:
方法一:直接替换索引值(推荐)
用replace()方法一步到位,不用找位置,非常直观:
# 假设你的Series是gd gd.index = gd.index.replace(1018, 13)
方法二:转成列表修改后重新赋值
如果你想更清晰地看到修改过程,可以先把索引转成列表,修改对应位置后再赋值回去:
# 把索引转成列表 index_list = gd.index.tolist() # 找到1018在列表中的位置 pos = index_list.index(1018) # 修改该位置的值为13 index_list[pos] = 13 # 重新设置Series的索引 gd.index = index_list
现在再打印gd,就能看到最后一个索引已经变成13啦:
subID
4 0.810423
5 0.841364
6 0.881007
8 0.763175
9 0.760102
10 0.905283
12 0.928358
14 0.779291
15 0.912377
13 0.926683
dtype: float64
内容的提问来源于stack exchange,提问作者Emin Baybars Timur
相关产品推荐
相关产品推荐

