精华内容
参与话题
问答
  • python中pandas库中DataFrame对行和列的操作使用方法

    万次阅读 多人点赞 2016-11-10 01:15:19
    这个repo 用来记录一些python技巧、书籍...用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data = DataFrame...

    这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎star

    github地址

    用pandas中的DataFrame时选取行或列:

    import numpy as np
    import pandas as pd
    from pandas import Sereis, DataFrame
    
    ser = Series(np.arange(3.))
    
    data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz'))
    
    data['w']  #选择表格中的'w'列,使用类字典属性,返回的是Series类型
    
    data.w    #选择表格中的'w'列,使用点属性,返回的是Series类型
    
    data[['w']]  #选择表格中的'w'列,返回的是DataFrame类型
    
    data[['w','z']]  #选择表格中的'w'、'z'列
    
    data[0:2]  #返回第1行到第2行的所有行,前闭后开,包括前不包括后
    
    data[1:2]  #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,
           #如果采用data[1]则报错
    
    data.ix[1:2] #返回第2行的第三种方法,返回的是DataFrame,跟data[1:2]同
    
    data['a':'b']  #利用index值进行切片,返回的是**前闭后闭**的DataFrame, 
            #即末端是包含的  
    
    #——————新版本pandas已舍弃该方法,用iloc代替———————
    data.irow(0)   #取data的第一行
    data.icol(0)   #取data的第一列
    
    ser.iget_value(0)  #选取ser序列中的第一个
    ser.iget_value(-1) #选取ser序列中的最后一个,这种轴索引包含索引器的series不能采用ser[-1]去获取最后一个,这会引起歧义。
    #————————————————————————————-----------------
    
    data.head()  #返回data的前几行数据,默认为前五行,需要前十行则data.head(10)
    data.tail()  #返回data的后几行数据,默认为后五行,需要后十行则data.tail(10)
    
    data.iloc[-1]   #选取DataFrame最后一行,返回的是Series
    data.iloc[-1:]   #选取DataFrame最后一行,返回的是DataFrame
    
    data.loc['a',['w','x']]   #返回‘a’行'w'、'x'列,这种用于选取行索引列索引已知
    
    data.iat[1,1]   #选取第二行第二列,用于已知行、列位置的选取。
    
    

    下面是简单的例子使用验证:

    import pandas as pd
    from pandas import Series, DataFrame
    import numpy as np
    
    data = DataFrame(np.arange(15).reshape(3,5),index=['one','two','three'],columns=['a','b','c','d','e'])
    
    data
    Out[7]: 
            a   b   c   d   e
    one     0   1   2   3   4
    two     5   6   7   8   9
    three  10  11  12  13  14
    
    #对列的操作方法有如下几种
    
    data.icol(0)   #选取第一列
    E:\Anaconda2\lib\site-packages\spyder\utils\ipython\start_kernel.py:1: FutureWarning: icol(i) is deprecated. Please use .iloc[:,i]
      # -*- coding: utf-8 -*-
    Out[35]: 
    one       0
    two       5
    three    10
    Name: a, dtype: int32
    
    data['a']
    Out[8]: 
    one       0
    two       5
    three    10
    Name: a, dtype: int32
    
    data.a
    Out[9]: 
    one       0
    two       5
    three    10
    Name: a, dtype: int32
    
    data[['a']]
    Out[10]: 
            a
    one     0
    two     5
    three  10
    
    data.ix[:,[0,1,2]]  #不知道列名只知道列的位置时
    Out[13]: 
            a   b   c
    one     0   1   2
    two     5   6   7
    three  10  11  12
    
    data.ix[1,[0]]  #选择第2行第1列的值
    Out[14]: 
    a    5
    Name: two, dtype: int32
    
    data.ix[[1,2],[0]]   #选择第2,3行第1列的值
    Out[15]: 
            a
    two     5
    three  10
    
    data.ix[1:3,[0,2]]  #选择第2-4行第1、3列的值
    Out[17]: 
            a   c
    two     5   7
    three  10  12
    
    data.ix[1:2,2:4]  #选择第2-3行,3-5(不包括5)列的值
    Out[29]: 
         c  d
    two  7  8
    
    data.ix[data.a>5,3]
    Out[30]: 
    three    13
    Name: d, dtype: int32
    
    data.ix[data.b>6,3:4]  #选择'b'列中大于6所在的行中的第4列,有点拗口
    Out[31]: 
            d
    three  13
    
    data.ix[data.a>5,2:4]  #选择'a'列中大于5所在的行中的第3-5(不包括5)列
    Out[32]: 
            c   d
    three  12  13
    
    data.ix[data.a>5,[2,2,2]]  #选择'a'列中大于5所在的行中的第2列并重复3次
    Out[33]: 
            c   c   c
    three  12  12  12
    
    #还可以行数或列数跟行名列名混着用
    data.ix[1:3,['a','e']]
    Out[24]: 
            a   e
    two     5   9
    three  10  14
    
    data.ix['one':'two',[2,1]]
    Out[25]: 
         c  b
    one  2  1
    two  7  6
    
    data.ix[['one','three'],[2,2]]
    Out[26]: 
            c   c
    one     2   2
    three  12  12
    
    data.ix['one':'three',['a','c']]
    Out[27]: 
            a   c
    one     0   2
    two     5   7
    three  10  12
    
    data.ix[['one','one'],['a','e','d','d','d']]
    Out[28]: 
         a  e  d  d  d
    one  0  4  3  3  3
    one  0  4  3  3  3
    
    #对行的操作有如下几种:
    data[1:2]  #(不知道列索引时)选择第2行,不能用data[1],可以用data.ix[1]
    Out[18]: 
         a  b  c  d  e
    two  5  6  7  8  9
    
    data.irow(1)   #选取第二行
    Out[36]: 
    a    5
    b    6
    c    7
    d    8
    e    9
    Name: two, dtype: int32
    
    data.ix[1]   #选择第2行
    Out[20]: 
    a    5
    b    6
    c    7
    d    8
    e    9
    Name: two, dtype: int32
    
    
    data['one':'two']  #当用已知的行索引时为前闭后闭区间,这点与切片稍有不同。
    Out[22]: 
         a  b  c  d  e
    one  0  1  2  3  4
    two  5  6  7  8  9
    
    data.ix[1:3]  #选择第2到4行,不包括第4行,即前闭后开区间。
    Out[23]: 
            a   b   c   d   e
    two     5   6   7   8   9
    three  10  11  12  13  14
    
    data.ix[-1:]  #取DataFrame中最后一行,返回的是DataFrame类型,**注意**这种取法是有使用条件的,只有当行索引不是数字索引时才可以使用,否则可以选用`data[-1:]`--返回DataFrame类型或`data.irow(-1)`--返回Series类型
    Out[11]: 
            a   b   c   d   e
    three  10  11  12  13  14
    
    data[-1:]  #跟上面一样,取DataFrame中最后一行,返回的是DataFrame类型
    Out[12]: 
            a   b   c   d   e
    three  10  11  12  13  14
    
    data.ix[-1] #取DataFrame中最后一行,返回的是Series类型,这个一样,行索引不能是数字时才可以使用
    Out[13]: 
    a    10
    b    11
    c    12
    d    13
    e    14
    Name: three, dtype: int32
    
    data.tail(1)   #返回DataFrame中的最后一行
    data.head(1)   #返回DataFrame中的第一行
    
    

    最近处理数据时发现当pd.read_csv()数据时有时候会有读取到未命名的列,且该列也用不到,一般是索引列被换掉后导致的,有强迫症的看着难受,这时候dataframe.drop([columns,])是没法处理的,怎么办呢,
    最笨的方法是直接给列索引重命名:

    data6
    
            Unnamed: 0  high    symbol  time
    date                
    2016-11-01  0   3317.4  IF1611  18:10:44.8
    2016-11-01  1   3317.4  IF1611  06:01:04.5
    2016-11-01  2   3317.4  IF1611  07:46:25.5
    2016-11-01  3   3318.4  IF1611  09:30:04.0
    2016-11-01  4   3321.8  IF1611  09:31:04.0
    
    data6.columns = list('abcd')
    
    data6
    
        a   b   c   d
    date                
    2016-11-01  0   3317.4  IF1611  18:10:44.8
    2016-11-01  1   3317.4  IF1611  06:01:04.5
    2016-11-01  2   3317.4  IF1611  07:46:25.5
    2016-11-01  3   3318.4  IF1611  09:30:04.0
    2016-11-01  4   3321.8  IF1611  09:31:04.0
    

    重新命名后就可以用dataframe.drop([columns])来删除了,当然不用我这样全部给列名替换掉了,可以只是改变未命名的那个列,然后删除。不过这个用起来总是觉得有点low,有没有更好的方法呢,有,可以不去删除,直接:

    data7 = data6.ix[:,1:]

    这样既不改变原有数据,也达到了删除神烦列,当然我这里时第0列删除,可以根据实际选择所在的列删除之,至于这个原理,可以看下前面的对列的操作。

    这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎star

    github地址

    展开全文
  • pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYSIS】中对pandas的方方面面都有了一个权威简明的入门级的介绍,谈到pandas数据的行更新、表合并等操作,一般用到的方法有concat、join、merge。...

    pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYSIS】中对pandas的方方面面都有了一个权威简明的入门级的介绍,谈到pandas数据的行更新、表合并等操作,一般用到的方法有concat、join、merge。但这三种方法对于很多新手来说,都不太好分清使用的场合与用途。

    构造函数

    方法 描述
    DataFrame([data, index, columns, dtype, copy]) 构造数据框

    属性和数据

    方法 描述
    Axes index: row labels;columns: column labels
    DataFrame.as_matrix([columns]) 转换为矩阵
    DataFrame.dtypes 返回数据的类型
    DataFrame.ftypes Return the ftypes (indication of sparse/dense and dtype) in this object.
    DataFrame.get_dtype_counts() 返回数据框数据类型的个数
    DataFrame.get_ftype_counts() Return the counts of ftypes in this object.
    DataFrame.select_dtypes([include, exclude]) 根据数据类型选取子数据框
    DataFrame.values Numpy的展示方式
    DataFrame.axes 返回横纵坐标的标签名
    DataFrame.ndim 返回数据框的纬度
    DataFrame.size 返回数据框元素的个数
    DataFrame.shape 返回数据框的形状
    DataFrame.memory_usage([index, deep]) Memory usage of DataFrame columns.

    类型转换

    方法 描述
    DataFrame.astype(dtype[, copy, errors]) 转换数据类型
    DataFrame.copy([deep]) 复制数据框
    DataFrame.isnull() 以布尔的方式返回空值
    DataFrame.notnull() 以布尔的方式返回非空值

    索引和迭代

    方法 描述
    DataFrame.head([n]) 返回前n行数据
    DataFrame.at 快速标签常量访问器
    DataFrame.iat 快速整型常量访问器
    DataFrame.loc 标签定位
    DataFrame.iloc 整型定位
    DataFrame.insert(loc, column, value[, …]) 在特殊地点插入行
    DataFrame.iter() Iterate over infor axis
    DataFrame.iteritems() 返回列名和序列的迭代器
    DataFrame.iterrows() 返回索引和序列的迭代器
    DataFrame.itertuples([index, name]) Iterate over DataFrame rows as namedtuples, with index value as first element of the tuple.
    DataFrame.lookup(row_labels, col_labels) Label-based “fancy indexing” function for DataFrame.
    DataFrame.pop(item) 返回删除的项目
    DataFrame.tail([n]) 返回最后n行
    DataFrame.xs(key[, axis, level, drop_level]) Returns a cross-section (row(s) or column(s)) from the Series/DataFrame.
    DataFrame.isin(values) 是否包含数据框中的元素
    DataFrame.where(cond[, other, inplace, …]) 条件筛选
    DataFrame.mask(cond[, other, inplace, axis, …]) Return an object of same shape as self and whose corresponding entries are from self where cond is False and otherwise are from other.
    DataFrame.query(expr[, inplace]) Query the columns of a frame with a boolean expression.

    二元运算

    方法 描述
    DataFrame.add(other[, axis, level, fill_value]) 加法,元素指向
    DataFrame.sub(other[, axis, level, fill_value]) 减法,元素指向
    DataFrame.mul(other[, axis, level, fill_value]) 乘法,元素指向
    DataFrame.div(other[, axis, level, fill_value]) 小数除法,元素指向
    DataFrame.truediv(other[, axis, level, …]) 真除法,元素指向
    DataFrame.floordiv(other[, axis, level, …]) 向下取整除法,元素指向
    DataFrame.mod(other[, axis, level, fill_value]) 模运算,元素指向
    DataFrame.pow(other[, axis, level, fill_value]) 幂运算,元素指向
    DataFrame.radd(other[, axis, level, fill_value]) 右侧加法,元素指向
    DataFrame.rsub(other[, axis, level, fill_value]) 右侧减法,元素指向
    DataFrame.rmul(other[, axis, level, fill_value]) 右侧乘法,元素指向
    DataFrame.rdiv(other[, axis, level, fill_value]) 右侧小数除法,元素指向
    DataFrame.rtruediv(other[, axis, level, …]) 右侧真除法,元素指向
    DataFrame.rfloordiv(other[, axis, level, …]) 右侧向下取整除法,元素指向
    DataFrame.rmod(other[, axis, level, fill_value]) 右侧模运算,元素指向
    DataFrame.rpow(other[, axis, level, fill_value]) 右侧幂运算,元素指向
    DataFrame.lt(other[, axis, level]) 类似Array.lt
    DataFrame.gt(other[, axis, level]) 类似Array.gt
    DataFrame.le(other[, axis, level]) 类似Array.le
    DataFrame.ge(other[, axis, level]) 类似Array.ge
    DataFrame.ne(other[, axis, level]) 类似Array.ne
    DataFrame.eq(other[, axis, level]) 类似Array.eq
    DataFrame.combine(other, func[, fill_value, …]) Add two DataFrame objects and do not propagate NaN values, so if for a
    DataFrame.combine_first(other) Combine two DataFrame objects and default to non-null values in frame calling the method.

    函数应用&分组&窗口

    方法 描述
    DataFrame.apply(func[, axis, broadcast, …]) 应用函数
    DataFrame.applymap(func) Apply a function to a DataFrame that is intended to operate elementwise, i.e.
    DataFrame.aggregate(func[, axis]) Aggregate using callable, string, dict, or list of string/callables
    DataFrame.transform(func, *args, **kwargs) Call function producing a like-indexed NDFrame
    DataFrame.groupby([by, axis, level, …]) 分组
    DataFrame.rolling(window[, min_periods, …]) 滚动窗口
    DataFrame.expanding([min_periods, freq, …]) 拓展窗口
    DataFrame.ewm([com, span, halflife, alpha, …]) 指数权重窗口

    描述统计学

    方法 描述
    DataFrame.abs() 返回绝对值
    DataFrame.all([axis, bool_only, skipna, level]) Return whether all elements are True over requested axis
    DataFrame.any([axis, bool_only, skipna, level]) Return whether any element is True over requested axis
    DataFrame.clip([lower, upper, axis]) Trim values at input threshold(s).
    DataFrame.clip_lower(threshold[, axis]) Return copy of the input with values below given value(s) truncated.
    DataFrame.clip_upper(threshold[, axis]) Return copy of input with values above given value(s) truncated.
    DataFrame.corr([method, min_periods]) 返回本数据框成对列的相关性系数
    DataFrame.corrwith(other[, axis, drop]) 返回不同数据框的相关性
    DataFrame.count([axis, level, numeric_only]) 返回非空元素的个数
    DataFrame.cov([min_periods]) 计算协方差
    DataFrame.cummax([axis, skipna]) Return cumulative max over requested axis.
    DataFrame.cummin([axis, skipna]) Return cumulative minimum over requested axis.
    DataFrame.cumprod([axis, skipna]) 返回累积
    DataFrame.cumsum([axis, skipna]) 返回累和
    DataFrame.describe([percentiles, include, …]) 整体描述数据框
    DataFrame.diff([periods, axis]) 1st discrete difference of object
    DataFrame.eval(expr[, inplace]) Evaluate an expression in the context of the calling DataFrame instance.
    DataFrame.kurt([axis, skipna, level, …]) 返回无偏峰度Fisher’s (kurtosis of normal == 0.0).
    DataFrame.mad([axis, skipna, level]) 返回偏差
    DataFrame.max([axis, skipna, level, …]) 返回最大值
    DataFrame.mean([axis, skipna, level, …]) 返回均值
    DataFrame.median([axis, skipna, level, …]) 返回中位数
    DataFrame.min([axis, skipna, level, …]) 返回最小值
    DataFrame.mode([axis, numeric_only]) 返回众数
    DataFrame.pct_change([periods, fill_method, …]) 返回百分比变化
    DataFrame.prod([axis, skipna, level, …]) 返回连乘积
    DataFrame.quantile([q, axis, numeric_only, …]) 返回分位数
    DataFrame.rank([axis, method, numeric_only, …]) 返回数字的排序
    DataFrame.round([decimals]) Round a DataFrame to a variable number of decimal places.
    DataFrame.sem([axis, skipna, level, ddof, …]) 返回无偏标准误
    DataFrame.skew([axis, skipna, level, …]) 返回无偏偏度
    DataFrame.sum([axis, skipna, level, …]) 求和
    DataFrame.std([axis, skipna, level, ddof, …]) 返回标准误差
    DataFrame.var([axis, skipna, level, ddof, …]) 返回无偏误差

    从新索引&选取&标签操作

    方法 描述
    DataFrame.add_prefix(prefix) 添加前缀
    DataFrame.add_suffix(suffix) 添加后缀
    DataFrame.align(other[, join, axis, level, …]) Align two object on their axes with the
    DataFrame.drop(labels[, axis, level, …]) 返回删除的列
    DataFrame.drop_duplicates([subset, keep, …]) Return DataFrame with duplicate rows removed, optionally only
    DataFrame.duplicated([subset, keep]) Return boolean Series denoting duplicate rows, optionally only
    DataFrame.equals(other) 两个数据框是否相同
    DataFrame.filter([items, like, regex, axis]) 过滤特定的子数据框
    DataFrame.first(offset) Convenience method for subsetting initial periods of time series data based on a date offset.
    DataFrame.head([n]) 返回前n行
    DataFrame.idxmax([axis, skipna]) Return index of first occurrence of maximum over requested axis.
    DataFrame.idxmin([axis, skipna]) Return index of first occurrence of minimum over requested axis.
    DataFrame.last(offset) Convenience method for subsetting final periods of time series data based on a date offset.
    DataFrame.reindex([index, columns]) Conform DataFrame to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.
    DataFrame.reindex_axis(labels[, axis, …]) Conform input object to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.
    DataFrame.reindex_like(other[, method, …]) Return an object with matching indices to myself.
    DataFrame.rename([index, columns]) Alter axes input function or functions.
    DataFrame.rename_axis(mapper[, axis, copy, …]) Alter index and / or columns using input function or functions.
    DataFrame.reset_index([level, drop, …]) For DataFrame with multi-level index, return new DataFrame with labeling information in the columns under the index names, defaulting to ‘level_0’, ‘level_1’, etc.
    DataFrame.sample([n, frac, replace, …]) 返回随机抽样
    DataFrame.select(crit[, axis]) Return data corresponding to axis labels matching criteria
    DataFrame.set_index(keys[, drop, append, …]) Set the DataFrame index (row labels) using one or more existing columns.
    DataFrame.tail([n]) 返回最后几行
    DataFrame.take(indices[, axis, convert, is_copy]) Analogous to ndarray.take
    DataFrame.truncate([before, after, axis, copy]) Truncates a sorted NDFrame before and/or after some particular index value.

    处理缺失值

    方法 描述
    DataFrame.dropna([axis, how, thresh, …]) Return object with labels on given axis omitted where alternately any
    DataFrame.fillna([value, method, axis, …]) 填充空值
    DataFrame.replace([to_replace, value, …]) Replace values given in ‘to_replace’ with ‘value’.

    从新定型&排序&转变形态

    方法 描述
    DataFrame.pivot([index, columns, values]) Reshape data (produce a “pivot” table) based on column values.
    DataFrame.reorder_levels(order[, axis]) Rearrange index levels using input order.
    DataFrame.sort_values(by[, axis, ascending, …]) Sort by the values along either axis
    DataFrame.sort_index([axis, level, …]) Sort object by labels (along an axis)
    DataFrame.nlargest(n, columns[, keep]) Get the rows of a DataFrame sorted by the n largest values of columns.
    DataFrame.nsmallest(n, columns[, keep]) Get the rows of a DataFrame sorted by the n smallest values of columns.
    DataFrame.swaplevel([i, j, axis]) Swap levels i and j in a MultiIndex on a particular axis
    DataFrame.stack([level, dropna]) Pivot a level of the (possibly hierarchical) column labels, returning a DataFrame (or Series in the case of an object with a single level of column labels) having a hierarchical index with a new inner-most level of row labels.
    DataFrame.unstack([level, fill_value]) Pivot a level of the (necessarily hierarchical) index labels, returning a DataFrame having a new level of column labels whose inner-most level consists of the pivoted index labels.
    DataFrame.melt([id_vars, value_vars, …]) “Unpivots” a DataFrame from wide format to long format, optionally
    DataFrame.T Transpose index and columns
    DataFrame.to_panel() Transform long (stacked) format (DataFrame) into wide (3D, Panel) format.
    DataFrame.to_xarray() Return an xarray object from the pandas object.
    DataFrame.transpose(*args, **kwargs) Transpose index and columns

    Combining& joining&merging

    方法 描述
    DataFrame.append(other[, ignore_index, …]) 追加数据
    DataFrame.assign(**kwargs) Assign new columns to a DataFrame, returning a new object (a copy) with all the original columns in addition to the new ones.
    DataFrame.join(other[, on, how, lsuffix, …]) Join columns with other DataFrame either on index or on a key column.
    DataFrame.merge(right[, how, on, left_on, …]) Merge DataFrame objects by performing a database-style join operation by columns or indexes.
    DataFrame.update(other[, join, overwrite, …]) Modify DataFrame in place using non-NA values from passed DataFrame.

    时间序列

    方法 描述
    DataFrame.asfreq(freq[, method, how, …]) 将时间序列转换为特定的频次
    DataFrame.asof(where[, subset]) The last row without any NaN is taken (or the last row without
    DataFrame.shift([periods, freq, axis]) Shift index by desired number of periods with an optional time freq
    DataFrame.first_valid_index() Return label for first non-NA/null value
    DataFrame.last_valid_index() Return label for last non-NA/null value
    DataFrame.resample(rule[, how, axis, …]) Convenience method for frequency conversion and resampling of time series.
    DataFrame.to_period([freq, axis, copy]) Convert DataFrame from DatetimeIndex to PeriodIndex with desired
    DataFrame.to_timestamp([freq, how, axis, copy]) Cast to DatetimeIndex of timestamps, at beginning of period
    DataFrame.tz_convert(tz[, axis, level, copy]) Convert tz-aware axis to target time zone.
    DataFrame.tz_localize(tz[, axis, level, …]) Localize tz-naive TimeSeries to target time zone.

    作图

    方法 描述
    DataFrame.plot([x, y, kind, ax, ….]) DataFrame plotting accessor and method
    DataFrame.plot.area([x, y]) 面积图Area plot
    DataFrame.plot.bar([x, y]) 垂直条形图Vertical bar plot
    DataFrame.plot.barh([x, y]) 水平条形图Horizontal bar plot
    DataFrame.plot.box([by]) 箱图Boxplot
    DataFrame.plot.density(**kwds) 核密度Kernel Density Estimate plot
    DataFrame.plot.hexbin(x, y[, C, …]) Hexbin plot
    DataFrame.plot.hist([by, bins]) 直方图Histogram
    DataFrame.plot.kde(**kwds) 核密度Kernel Density Estimate plot
    DataFrame.plot.line([x, y]) 线图Line plot
    DataFrame.plot.pie([y]) 饼图Pie chart
    DataFrame.plot.scatter(x, y[, s, c]) 散点图Scatter plot
    DataFrame.boxplot([column, by, ax, …]) Make a box plot from DataFrame column optionally grouped by some columns or
    DataFrame.hist(data[, column, by, grid, …]) Draw histogram of the DataFrame’s series using matplotlib / pylab.

    转换为其他格式

    方法 描述
    DataFrame.from_csv(path[, header, sep, …]) Read CSV file (DEPRECATED, please use pandas.read_csv() instead).
    DataFrame.from_dict(data[, orient, dtype]) Construct DataFrame from dict of array-like or dicts
    DataFrame.from_items(items[, columns, orient]) Convert (key, value) pairs to DataFrame.
    DataFrame.from_records(data[, index, …]) Convert structured or record ndarray to DataFrame
    DataFrame.info([verbose, buf, max_cols, …]) Concise summary of a DataFrame.
    DataFrame.to_pickle(path[, compression, …]) Pickle (serialize) object to input file path.
    DataFrame.to_csv([path_or_buf, sep, na_rep, …]) Write DataFrame to a comma-separated values (csv) file
    DataFrame.to_hdf(path_or_buf, key, **kwargs) Write the contained data to an HDF5 file using HDFStore.
    DataFrame.to_sql(name, con[, flavor, …]) Write records stored in a DataFrame to a SQL database.
    DataFrame.to_dict([orient, into]) Convert DataFrame to dictionary.
    DataFrame.to_excel(excel_writer[, …]) Write DataFrame to an excel sheet
    DataFrame.to_json([path_or_buf, orient, …]) Convert the object to a JSON string.
    DataFrame.to_html([buf, columns, col_space, …]) Render a DataFrame as an HTML table.
    DataFrame.to_feather(fname) write out the binary feather-format for DataFrames
    DataFrame.to_latex([buf, columns, …]) Render an object to a tabular environment table.
    DataFrame.to_stata(fname[, convert_dates, …]) A class for writing Stata binary dta files from array-like objects
    DataFrame.to_msgpack([path_or_buf, encoding]) msgpack (serialize) object to input file path
    DataFrame.to_gbq(destination_table, project_id) Write a DataFrame to a Google BigQuery table.
    DataFrame.to_records([index, convert_datetime64]) Convert DataFrame to record array.
    DataFrame.to_sparse([fill_value, kind]) Convert to SparseDataFrame
    DataFrame.to_dense() Return dense representation of NDFrame (as opposed to sparse)
    DataFrame.to_string([buf, columns, …]) Render a DataFrame to a console-friendly tabular output.
    DataFrame.to_clipboard([excel, sep]) Attempt to write text representation of object to the system clipboard This can be pasted into Excel, for example.

    参考文献:

    展开全文
  • pandas 入门:DataFrame的创建,读写,插入和删除

    万次阅读 多人点赞 2016-10-26 22:52:51
    不得不说DataFrame现在很火,已经有很多库都是基于DataFrame写的,而且它用起来也很方便,读excel只需要一行代码,起使用xlrd的日子,至今还脑壳疼,所以对于一个用python做数据处理的人来说,pandas是必须要了解的...

    不得不说DataFrame现在很火,已经有很多库都是基于DataFrame写的,而且它用起来也很方便,读excel只需要一行代码,起使用xlrd的日子,至今还脑壳疼,所以对于一个用python做数据处理的人来说,pandas是必须要了解的。对于一个数据处理工具来说,读写是最基本的,下面是我最近整理的关于pandas一些基本本操作,主要包括以下内容:

    • 如何创建DataFrame
    • 如何读取DataFrame的值,读一行/列、读多行/列
    • 如何对DataFrame赋值
    • 如何对DataFrame插入一(多)行/列
    • 如何删除DataFrame的一(多)行/列

    开始前先引入两个库

    import pandas as pd
    import numpy as np
    

    1 创建DataFrame

    1.1 利用字典创建

    data={"one":np.random.randn(4),"two":np.linspace(1,4,4),"three":['zhangsan','李四',999,0.1]}
    df=pd.DataFrame(data,index=[1,2,3,4])
    

    在这里插入图片描述

    • 如果创建df时不指定索引,默认索引将是从0开时,步长为1的数组。
    • df的行、列可以是不同的数据类型,同行也可以有多种数据类型。
    • df创建完成好可以重新设置索引,通常用到3个函数:set_indexreset_indexreindex
    1. set _index用于将df中的一行或多行设置为索引。
      df.set_index(['one'],drop=False) ordf.set_index('one)
      df.set_index(['one','two'])
      参数drop默认为True,意为将该列设置为索引后从数据中删除,如果设为False,将继续在数据中保留该行。
      在这里插入图片描述
    2. 如果要设置的索引不在数据中,可以通过
      df.index=['a','b','c','d']
    3. reset_index用于将索引还原成默认值,即从0开始步长为1的数组。
      df.reset_index(drop=True)
      参数drop默认值为False,意为将原来的索引做为数据列保留,如果设为True,原来的索引会直接删除。
      在这里插入图片描述
    4. reindex比较复杂,也不常用到,这里是基础篇,不做大量说明,感兴趣的朋友可以看官方文档

    1.2 利用数组创建

    data=np.random.randn(6,4)#创建一个6行4列的数组
    df=pd.DataFrame(data,columns=list('ABCD'),index=[1,2,'a','b','2006-10-1','第六行'])
    

    1.3 创建一个空DataFrame

    pd.DataFrame(columns=('id','name','grade','class'))
    

    为了便于理解,以下面DataFrame为例,对其读写操作展开说明:
    在这里插入图片描述

    2 读DataFrame

    2.1按列读取

    方法1:df.列名
    该方法每次只能读取一列。
    在这里插入图片描述
    方法2:df['列名']or df[['列名']]df[['列名1','列名2','列名n']]
    在这里插入图片描述
    ps:df['A']df[['A']]都能读取第一列数据,但它们的返回结果是不同的,这里的不同指的是数据结构的不同,感兴趣的朋友可以用type(df['A']),type(df[['A']])查看。
    方法3 .iloc[:,colNo] or .iloc[:,colNo1:colNo2]
    按列号读取,有时候我们可能更希望通过列号(1,2,3…)读取数据而不是列名,又或着我们要读取多行的时候一个一个输入列名是很麻烦的,我们希望有最简单的代码读取我们最想要的内容,.iloc方法可以让我们通过列号索引数据,具体如下:
    df.iloc[:1]读取第一列
    df.iloc[:,1:3]读取第1列到第3列
    df.iloc[:,2:]读取第2列之后的数据
    df.iloc[:,:3]读取前3列数据
    ps:这其实是按单元格读取数据的特殊写法,如果有疑问请看 2.3 按单元格读取数据

    2.2 按行读取

    方法1:.loc['行标签']or.loc[['行标签']].loc[['行标签1','行标签2','行标签n']]
    .loc根据行标签索引数据,这里的行标签可以理解为索引(没有深入研究,但是在这里,行标签=索引),比如我们要分别读取第1行和第3行就是df[[1]]df[['a']],如果该df的索引变为['a', 'b', 'c', 'd', 'e', 'f'],分别读取第1行和第3行的操作将变成df[['a']],df[['c']],也就是说.loc后面的'行标签'必须在索引中。
    在这里插入图片描述
    ps:df.loc[[1]]df.loc[1]返回结果的值相同,但数据结构有差异
    方法2:.iloc['行号']or.iloc[['行号']].iloc[['行号1','行号2','行号n']]
    .iloc根据行号索引数据,行号是固定不变的,不受索引变化的影响,如果df的索引是默认值,则.loc和.iloc的用法没有区别,因为此时行号和行标签相同。
    在这里插入图片描述
    可以看到df.loc[1]df.iloc[1]读到的内容是不一样的,df.loc[1]读取的是索引号为1的那一行,df.iloc[1]读取的是第1行。
    此外,.iloc可以通过切片的方式读取数据,所谓切片就是给出要读数据的首尾位置,然后读取首尾中间这“一片”数据(个人理解,可能理解的不对或比较片面,对此有疑惑的朋友请自行查阅相关资料)比如我们要读取第1行到第4行的数据,利用切片的方法就是df.iloc[1:5]
    在这里插入图片描述
    如果从第0行开始读,则首位置可以省略,如果从某一行读到末尾,则尾位置可以省略。
    df.iloc[:5],读取第0行到第4行的数据;
    df.iloc[8:],读取第8行后所有数据,包括第8行;
    df.iloc[3,6],读取第3行到第6行的数据,包括第3行但不包括第6行。
    方法3:.ix
    根据其他网友的说法,.ix是.loc和.iloc的综合版,既可以通过行标签检索也可以根据行号检索。通过实验发现这个说法并不完成正确。以上面的df为例:
    在这里插入图片描述
    因为df.ix[[1]]可以认为是要读第1行,也可以认为要读索引为1的那一行,此时就产生了冲突,可以看到此时pandas认为df.ix[[1]]读的是索引为1的那一行,如果用索引外的标签检索就会报错,而df.ix[1]被认为是第1行,此时df.ix[1]df.ix[[1]]读到的不是同一行数据。
    如果我们将df的索引改为['a', 'b', 'c', 'd', 'e', 'f']再进行上面的操作
    在这里插入图片描述
    此时df.ix[5]df.ix[[5]]读到的是同一行数据。
    通过以上实验,locilocix的区别如下:
    loc通过索引标签读取数据;
    iloc通过行号读取数据;
    ix既可以通过行号读取数据,也可以通过索引标签读取数据,但是当索引为数字且不从0开始时,有两种情况:
    (1)每次读一行:通过索引标签读取和通过行号读取有不同的写法.ix[['列标签']],.ix[行号]
    (2)读取多行:此时只能通过索引标签,不能利用行号。
    方法4:atiat
    atiat这里就不做介绍了,因为上面的方法完全够用了,感兴趣的话可以看官方文档
    .loc,.iloc完全可以满足DataFrame的读取操作,所以ix,at,iat并不推荐使用。

    2.3 按单元格读取

    方法1:df[col][row]
    读取一个单元格的数据时推荐使用,也可以写成df.col[row]
    在这里插入图片描述
    方法2:.loc
    (1)读取一个单元格:df.loc[row][col]df.loc[row,col]
    (2)读取一行多列:

    • df.loc[row][[col1,col2]]
    • df.loc[1,[col1,col2]]
    • df.loc[row][firstCol:endCol]
    • df.loc[row,firstCol:endCol]
      在这里插入图片描述
      (3)读取多行一列:
    • df.loc[[row1,row2]][col]
    • df.loc[[row1,row2]].col
    • df.loc[[row1,row2],col]
      在这里插入图片描述
      ps :在这里行号不能用切片。
      (4)读取多行多列
    • df.loc[[row1,row2],[col1,col2]]
    • df.loc[[row1,row2]][[col1,col2]]
    • df.loc[[row1,row3],firstCol:endCol]
      在这里插入图片描述
      ps:这里行号同样不能用切片,说明loc不支持行号切片索引。
      方法3:.iloc
      (1)读取一个单元格
    • df.iloc[rowNo].col
    • df.iloc[rowNo][col]
    • df.iloc[rowNo,colNo]
      ps:df.iloc[rowNo,col]不支持。
      (2)读取一行多列
    • df.iloc[rowNo,firestColNo,endColNo]
    • df.iloc[rowNo][[col1,col2]]
    • df.iloc[rowNo][firesCol:endCol]
      在这里插入图片描述
      ps:df.iloc[rowNo,[col1,col2]],
      df.iloc[rowNo,firstColNo:endColNo]均不支持。

      (3)读取多行一列
    • df.iloc[[rowNo1,rowNo2],colNo]
    • df.iloc[firstRowNo:endRowNo,colNo]
    • df.iloc[[rowNo1,rowNo2]][col]
    • df.iloc[firstRowNo,endRowNo][col]
      在这里插入图片描述
      (4)读取多行多列
    • df.iloc[firstRowNo:endRowNo,firstColNo:endColNo]
    • df.iloc[[RowNo1,RowNo2],[ColNo1,ColNo2]]
    • df.iloc[firstRowNo:endRowNo][[col1,col2]]
      在这里插入图片描述
      方法4:.ix
      累的不行了,这里就直接写多行多列的读取吧。
    • df.ix[firstRow/firstRowNo:endRow/endRowNo,firstCol/firstColNo:endCol/endColNo]
    • df.ix[[row1/rowNo1,row2,rowNo2],[col1/colNo1,col2,colNo2]]
      在这里插入图片描述
      方法5: at,iat

    3 写DataFrame/DataFrame赋值

    3.1 按列赋值

    • df.col=colList/colValue
    • df[col]=colList/colValue
      eg. df.A=[1,2,3,4,5,6],df['A']=0
      ps1:如果用一个列表或数组赋值,其长度必须和df的行数相同

    3.2 按行赋值

    • df.loc[row]=rowList
    • df.loc[row]=rowValue

    3.3 给多行多列赋值

    • df.loc[[row1,row2],[col1,col2]]=value/valueList
    • df.iloc[[rowNo1,rowNo2],[colNo1,colNo2]]=value/valueList
    • df.iloc[[rowNo1,rowNo2]][[col1,col2]]=value/valueList
    • df.ix[firstRow:endRow,firstCol:endCol]=value/valueList

    ps:DataFrame的读写操作是多变的,这里也仅仅列出了几种常用的方法,熟练一种方式即可。

    4 DataFrame的插入

    以下面DataFrame为例展开说明
    在这里插入图片描述

    4.1在任意位置插入

    插入一列
    insert(ioc,column,value)
    ioc:要插入的位置
    colunm:列名
    value:值
    

    在这里插入图片描述

    插入一行
    row={'one':111,'two':222,'three':333}
    df.loc[1]=row or
    df.iloc[1]=row or 
    df.ix[1]=row or 
    

    4.2在末尾插入

    如果插入一行或一列,用上面的方法把插入位置改为末尾即可,下面给出插入多行多列的方法。

    pandas.concat(objs, axis=0, join_axes=None, ignore_index=False)
    objs:合并对象
    axis:合并方式,默认0表示按列合并,1表示按行合并
    ignore_index:是否忽略索引 
    

    有df1和df2定义如下:
    在这里插入图片描述

    按行合并

    在这里插入图片描述

    按列合并

    在这里插入图片描述
    利用append函数可以完成相同的操作:
    在这里插入图片描述

    5 DataFrame的删除操作

    drop(labels, axis=0, level=None, inplace=False)
    lables:要删除数据的标签
    axis:0表示删除行,1表示删除列,默认0
    inplace:是否在当前df中执行此操作
    

    在这里插入图片描述

    后记:关于pandas的基本操作就写到这里了,关于以上内容如果有什么问题可以通过邮件联系博主,水平有限,请大家批评指正。
    后面如果有机会,我会写关于DataFrame更进一步的操作,我也不知道会不会写,能写多少,先附上地址pandas进阶:DataFrame高级操作

    展开全文
  • DataFrame基本函数整理(全)

    万次阅读 2018-11-20 01:00:45
    构造函数 ...DataFrame([data, index, columns, dtype, copy]) #构造数据框 属性和数据 DataFrame.axes #index: 行标签;columns: 列标签 DataFrame.as_matrix([columns]) #转换为矩阵 DataF...

    构造函数

    DataFrame([data, index, columns, dtype, copy]) #构造数据框


    属性和数据
    DataFrame.axes                                #index: 行标签;columns: 列标签
    DataFrame.as_matrix([columns])                #转换为矩阵
    DataFrame.dtypes                              #返回数据的类型
    DataFrame.ftypes                              #返回每一列的 数据类型float64:dense
    DataFrame.get_dtype_counts()                  #返回数据框数据类型的个数
    DataFrame.get_ftype_counts()                  #返回数据框数据类型float64:dense的个数
    DataFrame.select_dtypes([include, include])   #根据数据类型选取子数据框
    DataFrame.values                              #Numpy的展示方式
    DataFrame.axes                                #返回横纵坐标的标签名
    DataFrame.ndim                                #返回数据框的纬度
    DataFrame.size                                #返回数据框元素的个数
    DataFrame.shape                               #返回数据框的形状
    DataFrame.memory_usage()                      #每一列的存储

    类型转换
    DataFrame.astype(dtype[, copy, errors])       #转换数据类型
    DataFrame.copy([deep])                        #deep深度复制数据
    DataFrame.isnull()                            #以布尔的方式返回空值
    DataFrame.notnull()                           #以布尔的方式返回非空值

    索引和迭代
    DataFrame.head([n])                           #返回前n行数据
    DataFrame.at                                  #快速标签常量访问器
    DataFrame.iat                                 #快速整型常量访问器
    DataFrame.loc                                 #标签定位,使用名称
    DataFrame.iloc                                #整型定位,使用数字
    DataFrame.insert(loc, column, value)          #在特殊地点loc[数字]插入column[列名]某列数据
    DataFrame.iter()                              #Iterate over infor axis
    DataFrame.iteritems()                         #返回列名和序列的迭代器
    DataFrame.iterrows()                          #返回索引和序列的迭代器
    DataFrame.itertuples([index, name])           #Iterate over DataFrame rows as namedtuples, with index value as first element of the tuple.
    DataFrame.lookup(row_labels, col_labels)      #Label-based “fancy indexing” function for DataFrame.
    DataFrame.pop(item)                           #返回删除的项目
    DataFrame.tail([n])                           #返回最后n行
    DataFrame.xs(key[, axis, level, drop_level])  #Returns a cross-section (row(s) or column(s)) from the Series/DataFrame.
    DataFrame.isin(values)                        #是否包含数据框中的元素
    DataFrame.where(cond[, other, inplace, …])    #条件筛选
    DataFrame.mask(cond[, other, inplace, …])     #Return an object of same shape as self and whose corresponding entries are from self where cond is False and otherwise are from other.
    DataFrame.query(expr[, inplace])              #Query the columns of a frame with a boolean expression.

    二元运算
    DataFrame.add(other[,axis,fill_value])        #加法,元素指向
    DataFrame.sub(other[,axis,fill_value])        #减法,元素指向
    DataFrame.mul(other[, axis,fill_value])       #乘法,元素指向
    DataFrame.div(other[, axis,fill_value])       #小数除法,元素指向
    DataFrame.truediv(other[, axis, level, …])    #真除法,元素指向
    DataFrame.floordiv(other[, axis, level, …])   #向下取整除法,元素指向
    DataFrame.mod(other[, axis,fill_value])       #模运算,元素指向
    DataFrame.pow(other[, axis,fill_value])       #幂运算,元素指向
    DataFrame.radd(other[, axis,fill_value])      #右侧加法,元素指向
    DataFrame.rsub(other[, axis,fill_value])      #右侧减法,元素指向
    DataFrame.rmul(other[, axis,fill_value])      #右侧乘法,元素指向
    DataFrame.rdiv(other[, axis,fill_value])      #右侧小数除法,元素指向
    DataFrame.rtruediv(other[, axis, …])          #右侧真除法,元素指向
    DataFrame.rfloordiv(other[, axis, …])         #右侧向下取整除法,元素指向
    DataFrame.rmod(other[, axis,fill_value])      #右侧模运算,元素指向
    DataFrame.rpow(other[, axis,fill_value])      #右侧幂运算,元素指向
    DataFrame.lt(other[, axis, level])            #类似Array.lt
    DataFrame.gt(other[, axis, level])            #类似Array.gt
    DataFrame.le(other[, axis, level])            #类似Array.le
    DataFrame.ge(other[, axis, level])            #类似Array.ge
    DataFrame.ne(other[, axis, level])            #类似Array.ne
    DataFrame.eq(other[, axis, level])            #类似Array.eq
    DataFrame.combine(other,func[,fill_value, …]) #Add two DataFrame objects and do not propagate NaN values, so if for a
    DataFrame.combine_first(other)                #Combine two DataFrame objects and default to non-null values in frame calling the method.

    函数应用&分组&窗口
    DataFrame.apply(func[, axis, broadcast, …])   #应用函数
    DataFrame.applymap(func)                      #Apply a function to a DataFrame that is intended to operate elementwise, i.e.
    DataFrame.aggregate(func[, axis])             #Aggregate using callable, string, dict, or list of string/callables
    DataFrame.transform(func, *args, **kwargs)    #Call function producing a like-indexed NDFrame
    DataFrame.groupby([by, axis, level, …])       #分组
    DataFrame.rolling(window[, min_periods, …])   #滚动窗口
    DataFrame.expanding([min_periods, freq, …])   #拓展窗口
    DataFrame.ewm([com, span, halflife,  …])      #指数权重窗口

    描述统计学
    DataFrame.abs()                               #返回绝对值
    DataFrame.all([axis, bool_only, skipna])      #Return whether all elements are True over requested axis
    DataFrame.any([axis, bool_only, skipna])      #Return whether any element is True over requested axis
    DataFrame.clip([lower, upper, axis])          #Trim values at input threshold(s).
    DataFrame.clip_lower(threshold[, axis])       #Return copy of the input with values below given value(s) truncated.
    DataFrame.clip_upper(threshold[, axis])       #Return copy of input with values above given value(s) truncated.
    DataFrame.corr([method, min_periods])         #返回本数据框成对列的相关性系数
    DataFrame.corrwith(other[, axis, drop])       #返回不同数据框的相关性
    DataFrame.count([axis, level, numeric_only])  #返回非空元素的个数
    DataFrame.cov([min_periods])                  #计算协方差
    DataFrame.cummax([axis, skipna])              #Return cumulative max over requested axis.
    DataFrame.cummin([axis, skipna])              #Return cumulative minimum over requested axis.
    DataFrame.cumprod([axis, skipna])             #返回累积
    DataFrame.cumsum([axis, skipna])              #返回累和
    DataFrame.describe([percentiles,include, …])  #整体描述数据框
    DataFrame.diff([periods, axis])               #1st discrete difference of object
    DataFrame.eval(expr[, inplace])               #Evaluate an expression in the context of the calling DataFrame instance.
    DataFrame.kurt([axis, skipna, level, …])      #返回无偏峰度Fisher’s  (kurtosis of normal == 0.0).
    DataFrame.mad([axis, skipna, level])          #返回偏差
    DataFrame.max([axis, skipna, level, …])       #返回最大值
    DataFrame.mean([axis, skipna, level, …])      #返回均值
    DataFrame.median([axis, skipna, level, …])    #返回中位数
    DataFrame.min([axis, skipna, level, …])       #返回最小值
    DataFrame.mode([axis, numeric_only])          #返回众数
    DataFrame.pct_change([periods, fill_method])  #返回百分比变化
    DataFrame.prod([axis, skipna, level, …])      #返回连乘积
    DataFrame.quantile([q, axis, numeric_only])   #返回分位数
    DataFrame.rank([axis, method, numeric_only])  #返回数字的排序
    DataFrame.round([decimals])                   #Round a DataFrame to a variable number of decimal places.
    DataFrame.sem([axis, skipna, level, ddof])    #返回无偏标准误
    DataFrame.skew([axis, skipna, level, …])      #返回无偏偏度
    DataFrame.sum([axis, skipna, level, …])       #求和
    DataFrame.std([axis, skipna, level, ddof])    #返回标准误差
    DataFrame.var([axis, skipna, level, ddof])    #返回无偏误差 

    从新索引&选取&标签操作
    DataFrame.add_prefix(prefix)                  #添加前缀
    DataFrame.add_suffix(suffix)                  #添加后缀
    DataFrame.align(other[, join, axis, level])   #Align two object on their axes with the
    DataFrame.drop(labels[, axis, level, …])      #返回删除的列
    DataFrame.drop_duplicates([subset, keep, …])  #Return DataFrame with duplicate rows removed, optionally only
    DataFrame.duplicated([subset, keep])          #Return boolean Series denoting duplicate rows, optionally only
    DataFrame.equals(other)                       #两个数据框是否相同
    DataFrame.filter([items, like, regex, axis])  #过滤特定的子数据框
    DataFrame.first(offset)                       #Convenience method for subsetting initial periods of time series data based on a date offset.
    DataFrame.head([n])                           #返回前n行
    DataFrame.idxmax([axis, skipna])              #Return index of first occurrence of maximum over requested axis.
    DataFrame.idxmin([axis, skipna])              #Return index of first occurrence of minimum over requested axis.
    DataFrame.last(offset)                        #Convenience method for subsetting final periods of time series data based on a date offset.
    DataFrame.reindex([index, columns])           #Conform DataFrame to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.
    DataFrame.reindex_axis(labels[, axis, …])     #Conform input object to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.
    DataFrame.reindex_like(other[, method, …])    #Return an object with matching indices to myself.
    DataFrame.rename([index, columns])            #Alter axes input function or functions.
    DataFrame.rename_axis(mapper[, axis, copy])   #Alter index and / or columns using input function or functions.
    DataFrame.reset_index([level, drop, …])       #For DataFrame with multi-level index, return new DataFrame with labeling information in the columns under the index names, defaulting to ‘level_0’, ‘level_1’, etc.
    DataFrame.sample([n, frac, replace, …])       #返回随机抽样
    DataFrame.select(crit[, axis])                #Return data corresponding to axis labels matching criteria
    DataFrame.set_index(keys[, drop, append ])    #Set the DataFrame index (row labels) using one or more existing columns.
    DataFrame.tail([n])                           #返回最后几行
    DataFrame.take(indices[, axis, convert])      #Analogous to ndarray.take
    DataFrame.truncate([before, after, axis ])    #Truncates a sorted NDFrame before and/or after some particular index value.

    处理缺失值
    DataFrame.dropna([axis, how, thresh, …])      #Return object with labels on given axis omitted where alternately any
    DataFrame.fillna([value, method, axis, …])    #填充空值
    DataFrame.replace([to_replace, value, …])     #Replace values given in ‘to_replace’ with ‘value’.

    从新定型&排序&转变形态
    DataFrame.pivot([index, columns, values])     #Reshape data (produce a “pivot” table) based on column values.
    DataFrame.reorder_levels(order[, axis])       #Rearrange index levels using input order.
    DataFrame.sort_values(by[, axis, ascending])  #Sort by the values along either axis
    DataFrame.sort_index([axis, level, …])        #Sort object by labels (along an axis)
    DataFrame.nlargest(n, columns[, keep])        #Get the rows of a DataFrame sorted by the n largest values of columns.
    DataFrame.nsmallest(n, columns[, keep])       #Get the rows of a DataFrame sorted by the n smallest values of columns.
    DataFrame.swaplevel([i, j, axis])             #Swap levels i and j in a MultiIndex on a particular axis
    DataFrame.stack([level, dropna])              #Pivot a level of the (possibly hierarchical) column labels, returning a DataFrame (or Series in the case of an object with a single level of column labels) having a hierarchical index with a new inner-most level of row labels.
    DataFrame.unstack([level, fill_value])        #Pivot a level of the (necessarily hierarchical) index labels, returning a DataFrame having a new level of column labels whose inner-most level consists of the pivoted index labels.
    DataFrame.melt([id_vars, value_vars, …])      #“Unpivots” a DataFrame from wide format to long format, optionally
    DataFrame.T                                   #Transpose index and columns
    DataFrame.to_panel()                          #Transform long (stacked) format (DataFrame) into wide (3D, Panel) format.
    DataFrame.to_xarray()                         #Return an xarray object from the pandas object.
    DataFrame.transpose(*args, **kwargs)          #Transpose index and columns

    Combining& joining&merging
    DataFrame.append(other[, ignore_index, …])    #追加数据
    DataFrame.assign(**kwargs)                    #Assign new columns to a DataFrame, returning a new object (a copy) with all the original columns in addition to the new ones.
    DataFrame.join(other[, on, how, lsuffix, …])  #Join columns with other DataFrame either on index or on a key column.
    DataFrame.merge(right[, how, on, left_on, …]) #Merge DataFrame objects by performing a database-style join operation by columns or indexes.
    DataFrame.update(other[, join, overwrite, …]) #Modify DataFrame in place using non-NA values from passed DataFrame.

    时间序列
    DataFrame.asfreq(freq[, method, how, …])      #将时间序列转换为特定的频次
    DataFrame.asof(where[, subset])               #The last row without any NaN is taken (or the last row without
    DataFrame.shift([periods, freq, axis])        #Shift index by desired number of periods with an optional time freq
    DataFrame.first_valid_index()                 #Return label for first non-NA/null value
    DataFrame.last_valid_index()                  #Return label for last non-NA/null value
    DataFrame.resample(rule[, how, axis, …])      #Convenience method for frequency conversion and resampling of time series.
    DataFrame.to_period([freq, axis, copy])       #Convert DataFrame from DatetimeIndex to PeriodIndex with desired
    DataFrame.to_timestamp([freq, how, axis])     #Cast to DatetimeIndex of timestamps, at beginning of period
    DataFrame.tz_convert(tz[, axis, level, copy]) #Convert tz-aware axis to target time zone.
    DataFrame.tz_localize(tz[, axis, level, …])   #Localize tz-naive TimeSeries to target time zone.

    作图
    DataFrame.plot([x, y, kind, ax, ….])          #DataFrame plotting accessor and method
    DataFrame.plot.area([x, y])                   #面积图Area plot
    DataFrame.plot.bar([x, y])                    #垂直条形图Vertical bar plot
    DataFrame.plot.barh([x, y])                   #水平条形图Horizontal bar plot
    DataFrame.plot.box([by])                      #箱图Boxplot
    DataFrame.plot.density(**kwds)                #核密度Kernel Density Estimate plot
    DataFrame.plot.hexbin(x, y[, C, …])           #Hexbin plot
    DataFrame.plot.hist([by, bins])               #直方图Histogram
    DataFrame.plot.kde(**kwds)                    #核密度Kernel Density Estimate plot
    DataFrame.plot.line([x, y])                   #线图Line plot
    DataFrame.plot.pie([y])                       #饼图Pie chart
    DataFrame.plot.scatter(x, y[, s, c])          #散点图Scatter plot
    DataFrame.boxplot([column, by, ax, …])        #Make a box plot from DataFrame column optionally grouped by some columns or
    DataFrame.hist(data[, column, by, grid, …])   #Draw histogram of the DataFrame’s series using matplotlib / pylab.

    转换为其他格式
    DataFrame.from_csv(path[, header, sep, …])    #Read CSV file (DEPRECATED, please use pandas.read_csv() instead).
    DataFrame.from_dict(data[, orient, dtype])    #Construct DataFrame from dict of array-like or dicts
    DataFrame.from_items(items[,columns,orient])  #Convert (key, value) pairs to DataFrame.
    DataFrame.from_records(data[, index, …])      #Convert structured or record ndarray to DataFrame
    DataFrame.info([verbose, buf, max_cols, …])   #Concise summary of a DataFrame.
    DataFrame.to_pickle(path[, compression, …])   #Pickle (serialize) object to input file path.
    DataFrame.to_csv([path_or_buf, sep, na_rep])  #Write DataFrame to a comma-separated values (csv) file
    DataFrame.to_hdf(path_or_buf, key, **kwargs)  #Write the contained data to an HDF5 file using HDFStore.
    DataFrame.to_sql(name, con[, flavor, …])      #Write records stored in a DataFrame to a SQL database.
    DataFrame.to_dict([orient, into])             #Convert DataFrame to dictionary.
    DataFrame.to_excel(excel_writer[, …])         #Write DataFrame to an excel sheet
    DataFrame.to_json([path_or_buf, orient, …])   #Convert the object to a JSON string.
    DataFrame.to_html([buf, columns, col_space])  #Render a DataFrame as an HTML table.
    DataFrame.to_feather(fname)                   #write out the binary feather-format for DataFrames
    DataFrame.to_latex([buf, columns, …])         #Render an object to a tabular environment table.
    DataFrame.to_stata(fname[, convert_dates, …]) #A class for writing Stata binary dta files from array-like objects
    DataFrame.to_msgpack([path_or_buf, encoding]) #msgpack (serialize) object to input file path
    DataFrame.to_sparse([fill_value, kind])       #Convert to SparseDataFrame
    DataFrame.to_dense()                          #Return dense representation of NDFrame (as opposed to sparse)
    DataFrame.to_string([buf, columns, …])        #Render a DataFrame to a console-friendly tabular output.
    DataFrame.to_clipboard([excel, sep])          #Attempt to write text representation of object to the system clipboard 
    --------------------- 
    作者:brucewong0516 
    来源:CSDN 
    原文:https://blog.csdn.net/brucewong0516/article/details/81782312 
    版权声明:本文该博主原创文章,转载请附上博文链接!

    展开全文
  • Pandas DataFrame的基本属性详解

    万次阅读 多人点赞 2019-06-24 19:13:33
    Pandas DataFrame的一些基本属性 基本功能列表 import pandas as pd 导入库 df = pd.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False) 创建一个DataFrame df.index df.columns df.axes df.T...
  • 5种创建Dataframe方法

    万次阅读 2019-01-03 15:17:02
    下面将简要介绍Dataframe的5种创建方法,由于输出结果比较冗余,这里将不会展示输出结果,读者可以自行赋值粘贴,最好使用jupyter运行,并查看结果。另外的,代码中有非常详细的注释。 Dataframe创建方法一 import ...
  • DataFrame 转换为Dataset

    2019-02-27 15:24:00
    A DataFrame is a Dataset organized into named columns. A Dataset is a distributed collection of data. 贴代码: package february.sql import org.apache.spark.sql.SparkSession /** * Description: ...
  • DataFrame与Dataset 的区别

    千次阅读 2019-01-15 14:08:05
    DataFrame与Dataset 的关系 DataFrame与Dataset一般与spark ml同时使用 DataFrame与Dataset均支持sparksql的操作,比如select,groupby之类,还能注册临时表/视窗,进行sql语句操作,如 dataDF....
  • pandas详解(DataFrame篇)

    万次阅读 2019-08-06 20:58:06
    文章目录引言:DataFrame: 引言: 什么是DataFrameDataFrame:一个表格型的数据结构,包含有一组有序的列, 每列可以是不同的值类型(数值、字符串、布尔型等), DataFrame即有行索引也有列索引,可以被看做是由...
  • DataFrame 的函数详解

    千次阅读 2019-01-09 09:51:56
    1、 collect() ,返回值是一个数组,返回dataframe集合所有的行 2、 collectAsList() 返回值是一个java类型的数组,返回dataframe集合所有的行 3、 count() 返回一个number类型的,返回dataframe集合的行数 4、 ...
  • pandas模块常用函数解析之DataFrame 以下命令都是在浏览器中输入。 cmd命令窗口输入:jupyter notebook 打开浏览器输入网址http://localhost:8888/ 一、导入模块 import numpy as np import pandas as pd ...
  • PythonDataframe中新添加一列

    万次阅读 多人点赞 2019-08-13 16:31:25
    在敲代码的过程中,老是会遇到在Dataframe中新添加一列的情况,每次都要重新google,这次做个记录。 其实在Dataframe中新添加一列很简单,直接指明列名,然后赋值就可以了。 import pandas as pd data = pd....
  • Python中pandas dataframe删除一行或一列:drop函数

    万次阅读 多人点赞 2018-02-10 20:10:25
    用法:DataFrame.drop(labels=None,axis=0, index=None, columns=None, inplace=False) 在这里默认:axis=0,指删除index,因此删除columns时要指定axis=1; inplace=False,默认该删除操作不改变原数据,而是返回...
  • PythonDataFrame按照行遍历

    万次阅读 2017-09-07 13:49:21
    在做分类模型时候,需要在DataFrame中按照行获取数据以便于进行训练和测试。import pandas as pddict=[[1,2,3,4,5,6],[2,3,4,5,6,7],[3,4,5,6,7,8],[4,5,6,7,8,9],[5,6,7,8,9,10]] data=pd.DataFrame(dict) print...
  • Python dataframe修改列顺序(pandas学习)

    万次阅读 多人点赞 2018-08-22 15:48:51
    前言 这种需要的很多,在网上看了很多种解决方法。 这里总结一下。为自己以后使用的时候,方便查询 内容 方法一: 最简洁的方法 ... order = ['date', 'time', 'open', 'high', 'low', 'close', 'volumefrom', '...
  • 今天小编就为大家分享一篇python DataFrame 取差集实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python DataFrame创建及基本操作

    万次阅读 2018-12-26 18:01:19
    1.DataFrame创建 pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False) data:numpy ndarray(结构化或同类),dict或DataFrame,Dict可以包含Series,数组,常量或类似列表的对象 ...
  • python DataFrame的合并方法总结

    万次阅读 2019-01-16 20:56:15
    #多个相同col的DataFrame合并 #按照字段合并DataFrame merge函数 df1=pd.DataFrame([[1,2,3],[2,3,4]],columns=['a','b','c']) df2=pd.DataFrame([[1,2,3],[2,3,4]],columns=['a','b','d']) df1 a b c 0 1 2 3 1 2 ...
  • Python dataframe设置index

    万次阅读 2018-11-28 20:09:45
    DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False) 其中: keys是列标签或数组列表,drop:删除要用作新索引的列,布尔值默认为True,append:boolean是否将列附加到现有...
  • python DataFrame结构及常用操作

    千次阅读 2018-02-05 21:09:30
    python DataFrame结构及常用操作 Pandas模块是Python用于数据导入及整理的模块,对数据挖掘前期数据的处理工作十分有用,故此这些要好好学学。Pandas模块的数据结构主要有两:1、Series ;2、DataFrame
  • python dataframe where

    千次阅读 2016-08-12 11:04:06
    dataframe实现行过滤# -*- coding: UTF-8 -*- import pandas as pd df = pd.DataFrame({'col1': ['a', 'b', 'c', 'a'], 'col2': [1, 2, 3, 4]})# 取出col1中值为'a', 'b'的行 lists1 = ['a', 'b'] print df[df['...
  • python dataframe 获得 列名columns 和行名称 index

    万次阅读 多人点赞 2018-09-25 18:38:40
    dfname._stat_axis.values.tolist() # 行名称 dfname.columns.values.tolist() # 列名称  
  • python dataframe NaN处理

    万次阅读 2016-08-12 17:00:26
    dataframe中的NaN替换成希望的值import pandas as pd df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}]) df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}])data = pd...
  • python dataframe删除指定的行

    千次阅读 2019-02-08 10:44:04
    网上关于dataframe删除指定行的博文较少,看到一篇不错的,转载一下,原文地址:https://blog.csdn.net/shuihupo/article/details/82842524 遇到清洗数据的问题,需要把某一列数据中,那些为指定元素的数据,整行...
  • python DataFrame修改列

    2018-12-15 10:08:45
    一、修改DataFrame的列顺序: 代码段一: from pandas import DataFrame import numpy as np df1 = DataFrame(np.arange(12).reshape((3,4)),columns = ['a','b','c','d']) df1   代码段二: columns = ['d...
  • python dataframe join

    千次阅读 2016-08-12 15:56:05
    **用Dataframe实现SQL中的inner join, left join, right join 首先准备二张表,df1, df2**import pandas as pd df1 = pd.DataFrame([{'col1':'a', 'co12':1}, {'col1':'b', 'co12':2}]) df2 = pd.DataFrame([{'col1'...
  • python DataFrame数据生成

    千次阅读 2019-10-03 12:38:00
    前言: DataFrame是一个表格型的数据结构,既有行索引 index也有列索引columns,创建DataFrame的基本方法为df = pd.DataFrame(data, index=index,columns=columns),其中data参数的数据类型可以支持由列表、一维...
  • 当测试或实际应用需要设置空值缺失值时可以用None 、np.nan 、pd.NaT 处理空值异常值有两种办法,一种是将空值行/列删除,一种是将替代空值 如何对空值计数 a=df.isnull() b=a[a==True] b.count()#用来计算nan数量 ...
  • python dataframe concat用法

    千次阅读 2018-11-26 23:40:58
    concat 准确的说是拼接,axis 参数决定横向拼接还是纵向拼接! 1、axis=0 是行拼接,拼接之后行数增加,默认为行拼,等价于append。 2、在axis=1 时为横向拼接,等价于merge。 ...
  • Python DataFrame 添加行

    千次阅读 2017-08-14 09:33:56
    如题

空空如也

1 2 3 4 5 ... 20
收藏数 131,303
精华内容 52,521
关键字:

dataframe