读写数据
-
读取
-
格式
-
pd.read_xxx('https://xxx.xxx')
-
pd.read_xxx('xxx.xlsx')
-
-
类型
pd.read_excel()
pd.read_csv()
-
-
写入
df.to_excel('xxx.xlsx')
df.to_csv('team-done.csv')
数据概况
df.info()
# 查看数据类型、索引情况、行列数、字段类型、内存等df.describe()
# 计算数字字段的总数、平均数、标准差、最大值、最小值、四分位数df.axes
# 查看行数和列字段df.shape
# 查看行数和列数df.index
# 查看行索引df.columns
# 查看列字段df.types
# 查看各字段类型
列操作
df['name']
- 获取name列
df.name
- 同上
df[['name', 'age']]
- 获取name、age两列
df.loc[:,['name', 'age']]
- 同上
df[df.index == 'A']
- 获取指定行的索引列
df['grade']
= 1- 添加列
索引
-
设置索引
df.set_index('name', inplace=True)
- name # 设置为索引的字段名称
- inplace # 是更改后的数据生效
-
获取索引
-
df.head(num)
- num # 获取前n行,默认获取前5行
-
df.tail(num)
- num # 获取后n行,默认获取后5行
-
df[df.name > 90]
- A # 获取指定列大于90的所有行
-
df[0:3]
- 获取指定范围的行
-
df[0:10:2]
- 获取指定范围的行,每两个取一个
-
df.iloc[:10, :]
- 获取指定范围的行
-
排序
df.sort_values(by='name', ascending=False)
- 按name列升序排序,True为升序,False为降序
df.sort_values(['name', 'age'], ascending=[True, False])
- name升序,age降序
分组聚合
df.groupby('class').sum()
- groupby() # 分组
- sum() # 聚合
df.group('class').agg({'age':sum, 'score':'count'})
- 不同列进行不同聚合
转置
df.groupby('class').sum().T
df.groupby('class').sum().stack()
df.groupby('class').sum().unstack()
函数
函数 | 作用 |
---|---|
df.mean() | 返回每一列的均值 |
df.mean(1) | 返回每一行的均值,下同 |
df.corr() | 返回列与列之间的相关系数 |
df.count() | 返回每一列的非空个数 |
df.max() | 返回每一列的最大值 |
df.min() | 返回每一列的最小值 |
df.median() | 返回每一列的中位数 |
df.std() | 返回每一列的标准差 |
df.var() | 求方差 |
df.mode() | 求众数 |
绘图
-
df['name'].plot()
- 指定字段绘制图形
-
df.loc['name', 'A':'B'].plot()
- 指定某行多个字段绘制图形
-
df.loc['name', 'A':'B'].plot().bar()
函数 作用 bar() 柱状图 barh() 横向柱状图 pie() 饼图