如何在不删除非数值列的情况下调用DataFrame的mean()函数
保留Country列计算1960-1969年行均值的方法
你可以通过以下几种方式实现保留Country列并添加均值列的需求:
方法1:直接给原DataFrame新增均值列
先计算1960-1969年的行均值,将其作为新列添加到原DataFrame中:
import pandas as pd # 读取数据 fertilityRates = pd.read_csv('fertility_rate.csv') # 计算1960-1969列的行均值,新增为'Mean1960-1969'列 fertilityRates['Mean1960-1969'] = fertilityRates.iloc[:, 1:11].mean(axis=1) # 查看包含Country和均值列的结果(示例显示前5行) print(fertilityRates[['Country', 'Mean1960-1969']].head())
方法2:使用assign生成仅含目标列的新DataFrame
如果不需要保留原数据的其他年份列,可直接生成包含Country和均值的新DataFrame:
# 生成仅含Country和均值列的新DataFrame result_df = fertilityRates[['Country']].assign(Mean1960_1969=fertilityRates.iloc[:,1:11].mean(axis=1)) # 查看结果 print(result_df.head())
方法3:合并Country列与均值序列
提取Country列后,和计算好的均值序列合并成新DataFrame:
# 提取Country列 country_col = fertilityRates[['Country']] # 计算均值并命名列 mean_series = fertilityRates.iloc[:,1:11].mean(axis=1).rename('Mean1960-1969') # 合并两部分数据 result_df = pd.concat([country_col, mean_series], axis=1) print(result_df.head())
以上三种方法可按需选择:方法1适合保留原数据所有列并新增均值的场景;方法2、3适合仅保留Country和均值列的场景。
内容的提问来源于stack exchange,提问作者Gurbanoğlu
相关产品推荐
相关产品推荐

