pandas常用操作

# -*- coding:utf-8 -*-

import numpy as np
 import pandas as pd

rows = 20
 cols = ['A', 'B', 'C', 'D', 'E']
 data = np.random.random((rows, len(cols)))
 index = pd.date_range(start='2017-08-01', periods=rows)

df = pd.DataFrame(data=data, index=index, columns=cols)

# print df.dtypes
 # print df.index # 索引
 # print df.columns # 列名
 # print df.values

print df.head() # 开头n条数据
 # print df.tail() # 结尾n条数据

# print df.describe() # 统计摘要:数量、平均值、最小值、最大值……

# print df.sort_index(ascending=False) # 按索引排序
 # print df.sort_values(by='C') # 按列排序

# print df['C'] # 只显示'C'列数据
 # print df[1:5] # 只显示1-5行数据

# print df.loc[index[0]] # 显示第1行数据, 即df.loc['2017-08-01']
 # print df.loc[:,['A','B']] # 显示'A'、'B'两列数据
 # print df.loc[index[0],['A','B']] # 显示第1行的'A'、'B'两列数据
 # print df.loc[index[0]:index[3],['A','B']] # 显示第1-4行的'A'、'B'两列数据

# print df.iloc[0] # 显示第1行数据
 # print df.iloc[:,0:2] # 显示'A'、'B'两列数据
 # print df.iloc[0,0:2] # 显示第1行的'A'、'B'两列数据
 # print df.iloc[0:4,0:2] # 显示第1-4行的'A'、'B'两列数据
 # print df.iloc[[1,3,5],[0,2,3]] # 显示第2、4、6行的'A'、'C'、'D'三列数据

# print df.iloc[1,2] # 获取坐标(1,2)的值, 等同于下述方法
 # print df.iat[1,2] # 获取坐标(1,2)的值

# print df[df['A'] > 0.5] # 获取所有A列的值大于0.5的数据
 # print df[df > 0.5] # 获取所有值大于0.5的数据,不满足条件的自动填充nan

# df.at[index[0],'A'] = 0 # 设置第1行A列的值为0, 等同于下述方法
 # df.iat[1,0] = 1 # 设置第2行A列的值为1
 # print df[df['A'].isin([0,1])] # 获取所有A列等于0或1的数据
 # df.loc[:,'C'] = np.array([1] * rows) # 将C列所有值设置为1
 # df[df > 0.5] = 1 # 将所有大于0.5的值设置为1

# df2 = df.reindex(index=index[0:10], columns=['B','D','F']) # 创建一个包含前10行BDF列的df副本
 # df2.loc[index[1:3],'F'] = 1 # 设置第2-3行F列的值为1
 # df3 = df2.fillna(value=2) # 填充所有nan为2并返回新的副本
 # df4 = df2.dropna(how='any') # 删除所有nan的行并返回新的副本
 # df5 = df2.isnull() # 获取值为nan的布尔值

# print df.mean() # 所有行的平均值
 # print df.mean(1) # 所有列的平均值, axis=1

# print df['A'].value_counts()

# print df.groupby('A').sum() # 分组
 # print df.groupby(['A','B']).sum() # 子分组