Pandas速查表

基本数据结构操作

维数 名称 描述
1 Series 带标签的一维同构数组
2 DataFrame 带标签的,大小可变的,二维异构表格

DataFrame 是 Series 的容器,Series 则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象。

df的基本操作

  1. df[col]这样子取得的是列

  2. df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))

  3. df.head(2)

    df.tail(3)

    df.index

    df.column

  4. df.to_numpy()可以转换为numpy

  5. df.describe()可以查看统计信息

  6. df.T转置

  7. df.sort_index(axis=1, ascending=False)按轴排序

  8. df.sort_values(by='B')

选择数据

  1. df['A']选择单列
  2. df[0:3]切片行
  3. 按照标签选择df.loc[]选择一行
  4. df.loc[:, ['A', 'B']]选择多个列
  5. 选择范围就是组合应用上面的过程
  6. df.at[]访问数据和上面的结果一样
  7. df.iloc[]按照索引选择数据
  8. 布尔索引df[df.A > 0]

e.g.操作示范

1
2
3
for col in df.columns:
series = df[col]
# do something with series

显示控制

1
2
3
4
5
6
7
8
#显示所有的列
pd.set_option('display.max_columns', None)

#显示所有的行
pd.set_option('display.max_rows', None)

#设置value的显示长度为100,默认为50
pd.set_option('max_colwidth',100)

常用操作

1. 分组去重复统计

df.groupby('param')['group'].nunique()

2. 去重

data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)

3. 按日期字段分组

1
2
3
4
5
6
import pandas as pd

data = pd.read_csv('xxx.csv')
data['index'] = pd.to_datetime(data['index'])
print(data.groupby([data['index'].dt.year, data['index'].dt.month]).mean())
print(data.groupby([data['index'].dt.year, data['index'].dt.month]).last())

4. PANDAS 数据合并与重塑

5. 使用自定义函数处理数据

1
2
3
4
5
6
7
8
9
def equal_word(B,A): # A ->关键词   B->品牌词
A,B=str(A),str(B)

if B in A :
return False #如果包含,返回False
else:
return True #如果不包含,则返回True
df2=df1[['S_key_word','S_brand']]
df1['bool']=df2.apply(lambda x :equal_word(x['S_brand'] ,x['S_key_word']),axis=1)

Pandas速查表
https://blog.yrpang.com/posts/5186/
作者
yrPang
发布于
2020年8月30日
许可协议