python - 根据 Pandas 中另一列中的值范围聚合一列的内容

标签 python python-3.x pandas aggregate pandas-groupby

我正在根据给定列中的值范围聚合数据帧的内容。我的 df 如下所示:

min max names
1   5   ['a','b']
0   5   ['d']
6   8   ['a','c']
3   4   ['e','a']

预期的输出是

  • 对于 min=0max=5,获取聚合值,因此名称值为 ['a','b',' d','e','a']
  • 对于 min=5max=10,获取聚合值,名称值为 ['a','d']

感谢任何帮助。

最佳答案

最直观的方法是过滤然后聚合。为了解决您的具体问题,我会这样做:

>> df = pd.DataFrame({"min": [1, 0, 6, 3],
   "max": [5, 5, 8, 4],
   "value": [['a','b'], ['d'], ['a','c'], ['e','a']]})

>> print(df)
   min  max   value
0    1    5  [a, b]
1    0    5     [d]
2    6    8  [a, c]
3    3    4  [e, a]

>> sum_filtered_values = df[(df["max"]<=5) & (df["min"]>=0)].value.sum()
>> print(sum_filtered_values)
['a', 'b', 'd', 'e', 'a']

>> sum_filtered_values = df[(df["max"]<=10) & (df["min"]>=5)].value.sum()
>> print(sum_filtered_values)
['a', 'c']

关于python - 根据 Pandas 中另一列中的值范围聚合一列的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62214202/

相关文章:

python - 为什么我不能从 LDAP3 导入 LDAPBindError?

python - 以 Pandas Dataframe 作为值的字典的 JSON 格式

python - 通过匹配 Pandas DataFrame 中另一列中的值来获得行值的差异

python - 改善Elasticsearch性能

python - 在 python 中比较字符串的最快方法

python - 如何为 pandas 的列中的唯一值创建行?

python - 迭代 Pandas DataFrame,使用条件并添加列

python - 在多线程 Python 应用程序中最小化 MySQL 连接开销的正确方法是什么?

python - 机器人只需要一个命令

ubuntu - 安装了 Python3,但它在 Ubuntu 中输出错误