如何将生成的Pandas Series索引设置为DataFrame某列的值?
嘿,这个问题其实很容易解决,根本不需要手动遍历!你可以直接用Pandas Series的.set_axis()方法来替换索引,或者在生成差值Series的时候直接指定索引参数,两种方式都很高效。
方法一:生成差值后直接替换索引
先计算出你要的最大减最小的Series,然后用.set_axis()把索引换成df['Colname']的取值:
import pandas as pd # 先计算行的最大值减最小值 diff_series = q7.loc[:, list(q7)].max(axis=1) - q7.loc[:, list(q7)].min(axis=1) # 替换索引为df['Colname']的列表 diff_series = diff_series.set_axis(df['Colname'], axis=0)
方法二:生成时直接指定索引
更一步到位的写法,在计算差值后直接传入index参数创建新的Series:
# 先计算差值的数值数组 diff_values = q7.loc[:, list(q7)].max(axis=1) - q7.loc[:, list(q7)].min(axis=1) # 直接用指定索引创建Series diff_series = pd.Series(diff_values.values, index=df['Colname'])
补充说明
你之前找文档没找到对应方法,可能是混淆了.set_index()和.set_axis():
.set_index()是给DataFrame用的,用来把某一列设为索引;- 而
.set_axis()是针对Series/DataFrame的轴标签(索引或列名)进行替换的,刚好符合你要替换Series索引的需求。
这两种方法都避免了手动遍历,完全贴合你的需求~
内容的提问来源于stack exchange,提问作者taskforce_ham
相关产品推荐
相关产品推荐

