python - 从每行的最大值中减去最小值,Python Pandas DataFrame

标签 python pandas dataframe max min

我有一个按州名称和县名称索引的人口普查数据集,并希望循环遍历每一行以查找标记为“每年人口估计”的所有列的最大值和最小值,然后减去这两个值。我希望该函数返回带有索引和值的 Pandas 系列。

这是我当前的代码:

columns_to_keep=[
    'STNAME',
    'CTYNAME',
    'POPESTIMATE2010',
    'POPESTIMATE2011',
    'POPESTIMATE2012',
    'POPESTIMATE2013',
    'POPESTIMATE2014',
    'POPESTIMATE2015' 
]
df=census_df[columns_to_keep]

def answer_seven(lst):
    lst=[df['POPESTIMATE2010'],df['POPESTIMATE2011'],df['POPESTIMATE2012'],
             df['POPESTIMATE2013'],df['POPESTIMATE2014'],df['POPESTIMATE2015']]

    return max(lst)-min(lst)

answer_seven(lst)

错误信息:

ValueError                                Traceback (most recent call last)
<ipython-input-110-845350b0b5f7> in <module>()
     18     return max(lst)-min(lst)
     19 
---> 20 answer_seven(lst)
     21 

<ipython-input-110-845350b0b5f7> in answer_seven(lst)
     16              df['POPESTIMATE2013'],df['POPESTIMATE2014'],df['POPESTIMATE2015']]
     17 
---> 18     return max(lst)-min(lst)
     19 
     20 answer_seven(lst)

/opt/conda/lib/python3.5/site-packages/pandas/core/generic.py in __nonzero__(self)
    890         raise ValueError("The truth value of a {0} is ambiguous. "
    891                          "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
--> 892                          .format(self.__class__.__name__))
    893 
    894     __bool__ = __nonzero__

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

最佳答案

Pandas 可以直接执行此操作:

cols_of_interest = ['POPESTIMATE2010', 'POPESTIMATE2011', 'POPESTIMATE2012', 'POPESTIMATE2013', 'POPESTIMATE2014' , 'POPESTIMATE2015']
df[cols_of_interest].max(axis=1) - df[cols_of_interest].min(axis=1)

返回的结果将是一个由数据帧的原始索引和每行的最大值减去最小值进行索引的系列

关于python - 从每行的最大值中减去最小值,Python Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45065267/

相关文章:

python - 值错误 : could not convert string to float : bored

python - 处理缺失数据,使用数据帧值填充 nan,进行插值

python - 当我尝试使用 Paffy 获取 YouTube 播放列表的视频链接时出现错误

python - 生成字符串列表的所有排列

python - 使用 Pandas 合并具有不同维度的多个数据框

python - 在比较 pandas dataframe 中的列后,python 是否可以替换列表中的单词?

python - 为 SQLAlchemy 多对多数据库设置关系/映射

php - 如何更新 Excel 数据? (刷新所有查询)

python - 错误 : The truth value of a Series is ambiguous

python - 用另一个数据帧的值替换一个数据帧中的列值