初学pandas不断补充整理归纳常用的,配合numpy使用默认
import pandas as pd
import numpy as np
#习惯简写
一、创建
1.series s = pd.Series([1, 3, 4, np.nan, 1])
2.日期 dates = pd.date_range('20180101', periods=6)
3.dict对象创建DataFrame
df = pd.DataFrame({'A': 7.,
'B': pd.Timestamp('20021111'),
'C': pd.Series(4, index=list(range(4)), dtype='float32'),
'D': np.array([3] * 4, dtype='int32'),
'E': 'kkk',
'F': pd.Categorical(['a', 'b', 'c', 'd'])
})
4.指定行列名称 注list(‘ABC’)
df2 = pd.DataFrame(np.arange(24).reshape(6, 4), index=dates, columns=list('ABCD'))
5.下面是numpy的一些创建方法
枚举a = np.array([2,3,4],dtype=np.int)# 默认int64
零b = np.zeros((3,4)) # 3行4列全为0
壹c = np.ones((3,4)) # 全为1
等差递增1 e = np.arange(10,20,2) #[10 12 14 18]
等差递增2f = np.linspace(1,10,5) #[1. 3.25 6.5 8.75 10] 加.reshape会报错
指定矩阵排列
g = np.linspace(1,10,6).reshape((3,2)) # [[ 1. 2.8][ 4.6 6.4][ 8.2 10. ]]
.reshape指定矩阵的排列方式
0-1随机数np.random.random((2,4))
二、查看及排序axis= 0行 1列 切片:连续 ,间断
df2.index 行名
df2.columns 列名
df2.values 值
df2.T 倒序
行列排序改变0,1df2.sort_index(axis=0, ascending=False)
数据值排列df2.sort_values(by='F', ascending=False)
不显示带有缺失值的行 dropna(how='any')
填充缺失值df1.fillna(value=4)
pieces = [df2[:3], df2[2:7], df2[7:]]
[ A B C D
2018-01-01 0 1 2 3
2018-01-02 4 5 6 7
2018-01-03 8 9 10 11,
A B C D
2018-01-03 8 9 10 11
2018-01-04 12 13 14 15
2018-01-05 16 17 18 19
2018-01-06 20 21 22 23,
Empty DataFrame
Columns: [A, B, C, D]
Index: []
]
连接Pandas对象 pd.concat(pieces)
A B C D
2018-01-01 0 1 2 3
2018-01-02 4 5 6 7
2018-01-03 8 9 10 11
2018-01-03 8 9 10 11
2018-01-04 12 13 14 15
2018-01-05 16 17 18 19
2018-01-06 20 21 22 23
apped追加 df2.append(df2.iloc[3], ignore_index=True
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
4 16 17 18 19
5 20 21 22 23
6 12 13 14 15
三、选择
标签选择 loc
1.一行 df.loc[dates[0]]
2.多轴 df.loc[:, [‘A’, ‘B’]]
3.多轴切片 df.loc[‘20180102’:‘20180104’, [‘A’, ‘B’]]
4.标量 df.loc[dates[0], ‘A’] = df.at[dates[0], ‘A’]
位置选择 iloc
1.整数位置 df.iloc[3]
2.:切片 df.iloc[3:5, 0:2]
3.,切片 df.iloc[[1, 2, 4], [0, 2]]
4.整行 df.iloc[1:3, :]
5.整列 df.iloc[:, 1:3]
6.标量 df.iloc[1, 1] = df.iat[1, 1