Python data analyse & AI我爱编程

Pandas 基础总结

2018-04-27  本文已影响21人  文婷_5250

Pandas 是python的数据分析库,让数据处理变得非常简单,处理速度上也有很多优化,比python 的内置方法相比有很大的优势。
先学两个网站:

  1. python data analysis library
  2. 十分钟入门Pandas:10 Minutes to pandas
  3. [Pandas函数使用总结](https://mp.weixin.qq.com/s/jCRTBteONIBDmvpieQlP6A

约定俗成导入:

from pandas import Series,DataFrame
Series可以存储任意数据类型:

  1. 是一位标记数组,numpy的一位array;
  2. Python基本数据结构list
    DataFrame是二维标记数据结构,列可以是不同的数据类型,可接收多种输入

s = pd.Series([1,3,5,np.nan,6,8])
df=pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

查看检查数据

df.dtypes : 查看不同的数据类型:
df.head(), df.tail(3):查看frame的头和尾:
df.index,df.columns,df.values: 显示索引,列和底层的numpy数据
df.describe(): 快速统计
df.T :对数据转置
df.sort_index(axis=1, ascending=False): 按轴排序
df.sort_values(by='B'): 按值排序

选择数据,推荐使用经过优化的pandas的数据访问方式:.at,.iat,.loc和.ix

  1. 直接获取

df['A']:返回单独的一列,等同于df.A
df[0:3]: 前三行,第一行是索引

  1. 通过标签选择

df.loc[dates[0]]

df.loc[:,['A','B']]

  1. 通过位置选择
  1. 布尔索引

设置

s1 = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130102', periods=6))
df['F'] = s1

df2 = df.copy()
df2[df2 > 0] = -df2

缺失值处理

在pandas中,使用np.nan来代替缺失值,这些值将默认不会包含在计算中。

df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])
df1.loc[dates[0]:dates[1],'E'] = 1

df1.dropna(how='any')

df1.fillna(value=5)

pd.isnull(df1)

应用数据

合并

Pandas提供了大量的方法能够轻松的对Series,DataFrame和Panel对象进行各种符合各种逻辑关系的合并操作。

pieces = [df[:3], df[3:7], df[7:]]
pd.concat(pieces)

left = pd.DataFrame({'key': ['foo', 'foo'], 'lval': [1, 2]})
right = pd.DataFrame({'key': ['foo', 'foo'], 'rval': [4, 5]})
pd.merge(left, right, on='key')

df = pd.DataFrame(np.random.randn(8, 4), columns=['A','B','C','D'])
s = df.iloc[3]
df.append(s, ignore_index=True)

分组

对于”group by”操作,我们通常是指以下一个或多个操作步骤:
-(Splitting)按照一些规则将数据分为不同的组;
-(Applying)对于每组数据分别执行一个函数;
-(Combining)将结果组合到一个数据结构中;

df.groupby('A').sum()
df.groupby(['A','B']).sum()

重塑

pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])

上一篇 下一篇

猜你喜欢

热点阅读