python - 迭代多个数据帧并根据特定列执行计算

标签 python pandas dataframe average

我有几个数据框,其中以月份为列,并包含整数值。我为此示例发布了 2 个。

df1 =     
             June 2016       July 2016
Flavor
Vanilla      17.0            23.0
Chocolate    7.0             12.0
Strawberry   11.0            14.0

df2 =        
             June 2016       July 2016
Flavor
Vanilla      9.0            19.0
Chocolate    10.0           3.0

当数据帧必须匹配时,如何迭代每个数据帧并根据数据帧的行和列名称执行计算?例如,我想计算 7 月 Vanilla 的平均值,即 (23 + 19)/2。如果数据框中也不存在 Flavor,那么我还想在该数据框中每月分配一个常量值(在本例中为 15)。我会将数据帧附加在一起然后应用 .mean() 吗?

提前致谢,对于任何唐突之处表示歉意,我目前正在旅途中。

谢谢!

最佳答案

groupby 与列一起使用

pd.concat([df1,df2],1).fillna(15).groupby(level=0,axis=1).mean()
Out[408]: 
            July2016  June2016
Chocolate        7.5       8.5
Strawberry      14.5      13.0
Vanilla         21.0      13.0

关于python - 迭代多个数据帧并根据特定列执行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50634552/

相关文章:

java - 在spark1.6 Java API中如何获取数据帧的所有分区值?

python - GridSearchCV 的并行错误,适用于其他方法

python - 使用 python 分割行并添加分隔符到文本文件

python-3.x - pandas df : add column if doesn't exist, 将值添加到字典中的新列

python - 比较列中相同值的行并生成矩阵

Python Pandas 计算多列的值并根据结果生成图表

python : group by columns with columns values that are grouped by occurs only once and retain all other columns

python - 关闭流后出现错误?

python - 具有更高时间精度的 gnuplot 替代方案

python - R函数geom_freqpoly在Python中等效于绘制频率多边形