我是Python/Pandas新手,我认为我试图解决的问题非常简单,但我似乎无法对解决方案进行思考
我已经加载了一个CSV文件,删除了不需要的列,并对数据进行了排序。现在,我希望创建一个新表,该表基于引号的“值”是否在某个范围内。我在这里成功地排序了一些值:
# Sums values between $0 and $10k
Q_Summ10 = Q_Summ_W[(Q_Summ_W['Value'] > 0.0) & (Q_Summ_W['Value'] <= 10000.0)]
print(Q_Summ10)
print(Q_Summ10['Value'].sum())
# Sum values between $10k and $20k
Q_Summ20 = Q_Summ_W[(Q_Summ_W['Value'] > 10000.0) & (Q_Summ_W['Value'] <= 20000.0)]
print(Q_Summ20)
print(Q_Summ20['Value'].sum())
我希望以1万美元的增量迭代执行此操作,并为每个增量创建一个新的列/索引。以下代码是我尝试过但失败的代码:
for i in Q_Summ_W['Value'](10000.0,5000000.0,10000.0):
sep = pd.DataFrame[('Summ{}'.format(i)):[Q_Summ_W[Q_Summ_W['Value'] > (i - i) &
Q_Summ_W['Value'] <= i]]
研究告诉我应该使用字典或序列来实现这一点,但我不确定如何创建循环。非常感谢您的帮助
使用
pd.cut
将数据帧划分为间隔,然后df.groupby
按间隔将值分组,这样做更容易。然后简单地在groupby对象上使用sum()
方法,对每个间隔中的所有值求和您没有提供任何示例,因此下面的代码作用于具有
Value
列的数据帧,该列包含从0到1的随机值,然后我按0.1的间隔对其进行分组:请注意
np.arange(0, 1, 0.1))
是定义固定大小间隔数组的一种简单方便的方法,然后我们使用它来剪切数据帧。在我的示例中,它是数组:您只需修改此部分,即希望用作间隔的值的范围,例如
(10000.0,5000000.0,10000.0)
相关问题 更多 >
编程相关推荐