grouped2 = data.groupby(['year', 'cbwd']).count()
print(grouped2)
输出结果:
year cbwd
2010 0 2887
... ...
2011 0 2900
... ...
2012 0 2581
... ...
2013 0 2690
... ...
2014 0 2426
... ...
3 3186
Name: pm2.5, dtype: int64
print(list(grouped2))
输出结果:
[2887, 1545, 899, 2760, 2900, 1628, 832, 2672, 2581, 1799, 985, 2930, 2690, 1916, 1047, 3025, 2426, 2056, 993, 3186]
newData = data.groupby(data.dtypes, axis=1).size()
print(newData )
int64 9
float64 4
dtype: int64
数组产生标量的过程,如mean()、count()等;常用于对分组后的数据进行计算
内置的聚合函数:sum(), mean(), max(), min(), count(), size(), describe(),std(), var()
| 函数名 | 说明 |
|---|
| count | 分组中非NaN的值的数量 |
| sum | 非NaN值的和 |
| mean | 非NaN值的平均值 |
| median | 非NaN值的算术中位数 |
| std、var | 无偏(分母为n-1) 标准差、方差 |
| min、max | 非NaN值的最小值、最大值 |
| prod | 非NaN值的乘积 |
| first、last | 第一个、最后一个非NaN值 |
在pandas中对数据进行分组后,想要对相同组的数据进行其他字段的合并。类似场景:有2个字段,分别是文本内容和标签值。先根据文本内容进行分组,再对同一个组内的标签值进行合并,从而得到多标签值。
import pandas as pd
df = pd.DataFrame({'text': ['华中科技大学', '武汉大学', '清华大学', '华中科技大学', '武汉大学'],
'label': ["985,理工", "985"
1. maybe a semicolon is missing before `value toDF'?
2. DataFrame 创建与保存
3. Mysql 数据库的读取与写入
4. Hive 数据仓库的读取与写入
例子:df_fund = pd.merge( df_fund, df_perf , left_on=“基金代码”, right_on=“基金代码” )
left_on=“基金代码”, right_on=“基金代码” 会导致合并后的df有2个columns:“基金代码_x”,"“基金代码”_y"
解决方法:
df_fund = pd.merge( df_fund, df_perf , on=“基金代码”)
使用read_csv()函数读取step3文件夹中的state-population.csv(pop)、state-areas.csv(areas)、state-abbrevs.csv(abbrevs)文件;
合并pop和abbrevs。我们需要将pop的state/region列与abbrevs的abbreviation列进行合并,还需要通过how='outer'.
Pandas提供了concat、append、join和merge四种方法用于dataframe的拼接,其大致特点和区别见下表:
.concat() pandas的顶级方法,提供了axis设置可用于df间行方向(增加行,下同)或列方向(增加列,下同)进行内联或外联拼接操作
.append() dataframe数据类型的方法,提供了行方向的拼接操作
.join() datafr...
sku_tot_vol = data['unuseble_volume'].groupby([data.sku,data.location_code,data.unuseble_volume]).sum()
df....