-
【pandas】根据dataframe某一列的值求另外一列的均值,然后将结果转换成键值对
2020-07-30 08:17:18情景:计算两次考试,所有学生的平均成绩: '''a.csv date,name,grade 2020-07-01,mary,70 2020-07-01,tom,80 2020-07-01,jerry,70 2020-07-02,mary,80 2020-07-02,tom,90 ...grade = pd.read_csv('C:\\test\\a.csv...情景:计算两次考试,所有学生的平均成绩:
'''a.csv date,name,grade 2020-07-01,mary,70 2020-07-01,tom,80 2020-07-01,jerry,70 2020-07-02,mary,80 2020-07-02,tom,90 2020-07-02,tom,100''' grade = pd.read_csv('C:\\test\\a.csv') # average grade at 0701 and 0702 avg = grade['grade'].groupby(grade['date']).mean() # format grade avg to 'avg: XX' import math avg_new = avg.apply(lambda x: 'avg: '+str(math.floor(x))) # last step, change avg_new to key-value avg_new.to_dict()
结果:
-
Python中如何求DataFrame中某一列数值的平均值?如何求均线?
2020-04-01 16:52:50Python中如何求DataFrame中某一列数的日平均值? 例如求df对象中close列的5日均线: 1.使用循环,采用手动计算的方式: df['close'][i-4:i+1].mean() 获取第i天的5日均线 2.对整个dataframe对象,使用rolling...Python中如何求DataFrame中某一列数的日平均值?
例如求df对象中close列的5日均线:
1.使用循环,采用手动计算的方式:
df['close'][i-4:i+1].mean()
获取第i天的5日均线
2.对整个dataframe对象,使用rolling函数:
daily['close'].rolling(5).mean()
其中rolling[5]返回的是一个rolling对象,包含5行数据的对象,因此需要想(1)中一样使用mean,获取平均值。
获取每一条记录的5日均值。
-
pythongroupby求某一列均值_Groupby求和并依靠python中的多列
2021-01-13 17:34:00I have a pandas dataframe that looks like thisID country month revenue profit ebit234 USA 201409 10 5 3344 USA 201409 9 7 2532 UK ...I have a pandas dataframe that looks like this
ID country month revenue profit ebit
234 USA 201409 10 5 3
344 USA 201409 9 7 2
532 UK 201410 20 10 5
129 Canada 201411 15 10 5
I want to group by ID, country, month and count the IDs per month and country and sum the revenue, profit, ebit.
The output for the above data would be:
country month revenue profit ebit count
USA 201409 19 12 5 2
UK 201409 20 10 5 1
Canada 201411 15 10 5 1
I have tried different variations of groupby, sum and count functions of pandas but I am unable to figure out how to apply groupby sum and count all together to give the result as shown. Please share any ideas that you might have. Thanks!
解决方案
It can be done using pivot_table this way:
>>> df1=pd.pivot_table(df, index=['country','month'],values=['revenue','profit','ebit'],aggfunc=np.sum)
>>> df1
ebit profit revenue
country month
Canada 201411 5 10 15
UK 201410 5 10 20
USA 201409 5 12 19
>>> df2=pd.pivot_table(df, index=['country','month'], values='ID',aggfunc=len).rename('count')
>>> df2
country month
Canada 201411 1
UK 201410 1
USA 201409 2
>>> pd.concat([df1,df2],axis=1)
ebit profit revenue count
country month
Canada 201411 5 10 15 1
UK 201410 5 10 20 1
USA 201409 5 12 19 2
-
pythongroupby求某一列均值_python – 如何使用groupby获得pandas的月平均值
2020-12-31 09:21:19我有下一个DataFrame:data=pd.read_csv('anual.csv', parse_dates='Fecha', index_col=0)dataDatetimeIndex: 290 entries, 2011-01-01 00:00:00 to 2011-12-31 00:00:00Data columns (total 12 columns):HR 2...我有下一个DataFrame:
data=pd.read_csv('anual.csv', parse_dates='Fecha', index_col=0)
data
DatetimeIndex: 290 entries, 2011-01-01 00:00:00 to 2011-12-31 00:00:00
Data columns (total 12 columns):
HR 290 non-null values
PreciAcu 290 non-null values
RadSolar 290 non-null values
T 290 non-null values
Presion 290 non-null values
Tmax 290 non-null values
HRmax 290 non-null values
Presionmax 290 non-null values
RadSolarmax 290 non-null values
Tmin 290 non-null values
HRmin 290 non-null values
Presionmin 290 non-null values
dtypes: float64(4), int64(8)
哪里:
data['HR']
Fecha
2011-01-01 37
2011-02-01 70
2011-03-01 62
2011-04-01 69
2011-05-01 72
2011-06-01 71
2011-07-01 71
2011-08-01 70
2011-09-01 40
...
2011-12-17 92
2011-12-18 78
2011-12-19 79
2011-12-20 76
2011-12-21 78
2011-12-22 80
2011-12-23 72
2011-12-24 70
此外,有些月份并不总是完整的.我的目标是从每日数据计算每个月的平均值.这是通过以下方式实现的:
monthly=data.resample('M', how='mean')
HR PreciAcu RadSolar T Presion Tmax
Fecha
2011-01-31 68.586207 3.744828 163.379310 17.496552 0 25.875862
2011-02-28 68.666667 1.966667 208.000000 18.854167 0 28.879167
2011-03-31 69.136364 3.495455 218.090909 20.986364 0 30.359091
2011-04-30 68.956522 1.913043 221.130435 22.165217 0 31.708696
2011-05-31 72.700000 0.550000 201.100000 18.900000 0 27.460000
2011-06-30 70.821429 6.050000 214.000000 23.032143 0 30.621429
2011-07-31 78.034483 5.810345 188.206897 21.503448 0 27.951724
2011-08-31 71.750000 1.028571 214.750000 22.439286 0 30.657143
2011-09-30 72.481481 0.185185 196.962963 21.714815 0 29.596296
2011-10-31 68.083333 1.770833 224.958333 18.683333 0 27.075000
2011-11-30 71.750000 0.812500 169.625000 18.925000 0 26.237500
2011-12-31 71.833333 0.160000 159.533333 17.260000 0 25.403333
我发现的第一个错误是在降水列中,因为所有观测结果在1月份都是0,而在这个特定月份获得的平均值为3.74.
当Excel中的平均值与上面的结果进行比较时,存在显着差异.例如,Febrero的HR平均值是
mean HR using pandas=68.66
mean HR using excel=67
我找到的另一个细节:
data['PreciAcu']['2011-01'].count()
29 and should be 31
难道我做错了什么?
我该如何解决这个错误?
附件csv文件:
-
python -- apply() 求某列数据与其均值的差
2019-06-18 12:44:11已知一个DataFrame的数据集rr为: 计算R_interval、F_value、M_value每列数据与其均值的差。 若下面这样筛选数据则会报错,一直没找到具体原因。 rr['R_interval'].apply(lambda x:x-x.mean()).head() 但是若用... -
pandas归一化某一列_十分钟带你了解pandas常用知识
2021-03-16 23:15:26pandas常用知识一、读取csv文件为dataframe二、dataframe的数据概况三、取列数据四、取行数据五、取某一单元格数据六、缺失值处理七、归一化处理八、排序九、索引重新编号十、求均值十一、矢量化操作(批量操作)十二... -
pandas将datafram中某列按照条件赋值方法,求每行最大值、均值、和方法
2018-06-26 17:09:541、批量修改datafram中某一列 在数据处理过程中,经常会出现对某列批量做某些操作,比如dataframe df要对列名为“values”做大于等于30设置为1,小于30设置为0操作,可以这样使用dataframe的apply函数来实现,具体... -
pandas归一化某一列_十分钟带你了解pandas常用方法
2021-01-16 13:11:22pandas常用知识一、读取csv文件为dataframe二、dataframe的数据概况三、取列数据四、取行数据五、取某一单元格数据六、缺失值处理七、归一化处理八、排序九、索引重新编号十、求均值十一、矢量化操作(批量操作)十二... -
python数据处理——pandas Dataframe.mean()没有返回值,返回series[]
2019-01-11 10:12:14博主真真是个遍历BUG的小能手,这个问题的原因是在pd.read_csv()之类的操作时候,没有指定...要问我怎么发现的,我在使用DEBUG功能时候,使用了这个函数:意思就是对dataframe的某一列求均值啦,返回typeerror,我... -
python分段求均值_Python Pandas实现数据分组求平均值并填充nan的示例
2020-12-19 11:48:19Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。DataFrame数据格式fillna方式实现groupby方式实现DataFrame数据格式以下是数据存储形式:fillna方式实现1、按照industryName1列... -
python筛选数据求均值_Python Pandas实现数据分组求平均值并填充nan的示例
2020-12-03 03:18:13Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。DataFrame数据格式fillna方式实现groupby方式实现DataFrame数据格式以下是数据存储形式:fillna方式实现1、按照industryName1列... -
pandas用均值填充nan_Python Pandas实现数据分组求平均值并填充nan的示例
2020-12-24 17:28:36Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。DataFrame数据格式fillna方式实现groupby方式实现DataFrame数据格式以下是数据存储形式:fillna方式实现1、按照industryName1列... -
Python-科学计算-pandas-12-df单列计算
2020-09-12 21:09:35微信公众号原文 系统:Windows 7 ...计算Dataframe某一列的和、均值、最大值、最小值、样本标准方差 Part 1:背景 已知一个Df,如下图 包括3列["time", "pos", "value1", "value2"] 包括8行[0,1,2,3,4, -
Pandas学习笔记,groupby的一些用法
2019-10-02 05:52:11当DataFrame中的元素可以根据某一列来分组时,比如各个国家的经济数据根据各个国家所在的大陆分成几组 DataFrame.groupby('continent').GDP.mean() DataFrame.groupby('continent').mean() 第一行得到的是... -
pandas
2018-09-03 21:52:16apply map map()将函数作用于Series中的每个元素 apply()作用于DataFrame中的行或者列,一维的向量...计算某一列中的去重复后的元素数:df[df.columns[1]].nunique() sort df.sort_values(by=['col1']) df.sor... -
特征计算 - 遍历求值提速 6 万倍 lambda...if...else(if...else...) +map() 对比 iterrows() - Python代码
2019-02-14 16:25:22Python 进行 DataFrame 数据处理的过程中,需要判断某一列中的值(条件),然后对其他两列或三列进行求和(均值/最值)等运算,并把运算结果存储在新的一列中。干说可能觉得比较晕,我们来看一个例子: 下表 data_... -
Pandas中的appy和applymap
2020-03-11 13:51:38我们经常会遇到对某一行的数据进行处理或者某一列进行处理这时候我们就可用到pandas中apply函数 示例代码: import pandas as pd import numpy as np # 创建一个dataframe df = pd.DataFrame(np.random.randn(3,4),... -
python优化else_数据预处理 - 提速优化 lambda...if...else(if...else...) +map() 比iterrows()遍历求值快 ...
2021-03-17 21:53:51Python 进行 DataFrame 数据处理的过程中,需要判断某一列中的值(条件),然后对其他两列或三列进行求和(均值/最值)等运算,并把运算结果存储在新的一列中。干说可能觉得比较晕,我们来看一个例子:下表 data_base 中... -
pandas数据分析模块(二)
2018-11-22 12:00:56一.准备知识 pandas.isnull(Series对象) 返回bool型的Series对象 同 Series对象.isnull() ...NAN和任何值做计算时,结果都为NAN,所以在对某一列做求和,求均值等操作时,需先过滤掉缺失值 *.mean(... -
Pandas - groupby-agg 分组统计
2020-09-24 17:00:38Pandas - groupby-agg 分组统计 分组统计是数据分析中较为复杂的一种操作,但是使用...以某一列为参照物对另一列进行分组统计 对data1按照key1进行分组,然后求均值: """ 数据聚合与分组技术, 利用Python进行数据分析 -
-
-
-
-
-