我爱编程

Advanced Python Pandas

2017-08-13  本文已影响0人  豊小乂

Merging DataFrames

语法如下:
merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True,
suffixes=('_x', '_y'), copy=True, indicator=False)

参数说明:

  1. left 与 right:两个不同的 DataFrame
  2. how:指的是合并(连接)的方式有 inner(内连接), left(左外连接), right(右外连接), outer(全外连接); 默认为 inner
  3. on: 指的是用于连接的列索引名称。必须存在右右两个 DataFrame 对象中,如果没有指定且其他参数也未指定则以两个 DataFrame 的列名交集做为连接键
  4. left_on:左则 DataFrame 中用作连接键的列名;这个参数中左右列名不相同,但代表的含义相同时非常有用。
  5. right_on:右则 DataFrame 中用作 连接键的列名
  6. left_index:使用左则 DataFrame 中的行索引做为连接键
  7. right_index:使用右则 DataFrame 中的行索引做为连接键
  8. sort:默认为 True,将合并的数据进行排序。在大多数情况下设置为 False 可以提高性能
  9. suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为 ('_x','_y')
  10. copy:默认为 True,总是将数据复制到数据结构中;大多数情况下设置为False可以提高性能
  11. indicator:在 0.17.0 中还增加了一个显示合并数据中来源情况;如只来自己于左边(left_only)、两者(both)

Idiomatic Pandas: Making Code Pandorable

用连续的函数加换行增加代码的可读性:
(df.where(df['SUMLEV']==50)
.dropna()
.set_index(['STNAME','CTYNAME'])
.rename(columns={'ESTIMATESBASE2010': 'Estimates Base 2010'}))

注意到,给 column 重命名的代码:df.rename(column={'original_name': 'new_name'})

Group by

Scales

Pivot Tables

语法如下:
pivot_table(df, values=, index=, columns=, aggfunc=np.mean, margins=False)

if margins=True, special All(default is np.mean) columns and rows will be added with partial group aggregates.

Date Functionality

output:
2016-09-01 a
2016-09-02 b
2016-09-03 c
dtype: object

Working with Dates in Dataframe

Other

上一篇 下一篇

猜你喜欢

热点阅读