当前位置: 首页>编程语言>正文

dataframe如何把索引列转换为一列 dataframe列索引属性名

一、DataFrame

1. 常用基本方法及属性

df.info() 输出总行数、各列的行数、类型、索引、占用内存等信息;

df.index 输出索引,为 pandas.core.indexes.range.RangeIndex 类型;

df.columns 输出列名,为pandas.core.indexes.base.Index 类型,可使用df.columns.str ;

df.dtypes 各列的类型,输出一个series,值是object类型;

df.values 值,输出一个 array

df.describe() 输出各数值列的统计值,如非空个数、均值、std、极值、分位数。

 

2. 索引

df.set_index() 设置索引,括号内可以填入DataFrame中某列的列名,就能使用此列作为索引;

df.loc[ ] 以label索引,可实现花哨的混合索引,如:df.loc[ df.density>100, ['pop', 'density'] ] ;

df.iloc[ ] 以绝对位置索引,即数字;

掩码操作,如 df[ df ['density'] > 100 ] 。

 

3. 计算:

df.cov() 协方差,df.corr() 相关系数,df.mean(axis = 1),df.median(),df.max();

df[ 'Age' ].value_counts(ascending = True, bins = 5) 非nan计数(升序排列,分箱);

pd.cut()也能实现连续值离散化,pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)。

 

4. 增删改查、合并、排序

使用df.copy()防止误修改df;

df.rename(index = {'a' : 'A'}, inplace = True) 重命名索引,注意需要inplace为True才能真正修改;

df.append(df2) 增加;

df.drop(['a', 'b'], inplace = True) 删除;

data.drop_duplicates()去重,subset参数可以选择具体的列;

df3 = pd.concat([df1,df2], axis = 0) 实现两个DataFrame的简易合并;

pd.merge(on, left_on, right_on, left_index, right_index, how, suffixes) 数据表连接操作,on可以指定多个列作为键;

多列排序 data.sort_values(by=['group','data'],ascending = [False,True],inplace=True),即在by、ascending处传入list,会先按'group'列再按'data'列排序。

 

5. groupby聚合 和数据透视表pivot_table(相当于多维的groupby操作)

df.pivot_table(index = 'Sex', columns='Pclass', values='Fare',aggfunc = 'sum') ,aggfunc默认是mean;

 

6. 时间序列

Pandas所有关于日期与时间的处理方法全部是通过Timestamp对象实现的;

pd.to_datetime('2017-11-24') 把str转化为Timestamp对象(pd.Timestamp也可以);

ts + pd.Timedelta('5 days') 用Timedelta加上时间间隔;

pd.read_csv()方法中参数parse_dates = True,可以直接将数据中的时间作为索引;

将时间戳作为索引值取出对应时间段内的数据:data[pd.Timestamp('2012-01-01 09:00'):pd.Timestamp('2012-01-01 19:00')]  ,

同时也可以使用 data['2013'],data['2012-01':'2012-03'] 等简便方式;

仅取1月份的数据 data[data.index.month == 1] ;

时间重采样,将原始数据转化为均匀间隔的数据,

DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start',kind

=None, loffset=None, limit=None, base=0),如df.resample('3D')方法,对3天的数据进行重采样。

 

6. apply自定义函数 DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds),说明:

* 允许传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,
** 关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

 

7. 缺失值:DataFrame.isnull().any(),.fillna() 等。

 

8. 字符串Series.str.lower(),str是Series的一个属性,s.str.upper(),s.str.len(),index.str.strip(),df.columns.str.replace(' ','_'),s.str.split('_'),s.str.contains('Ag'),s.str.get_dummies(sep = '|')  。

 

9. notebook显示设置:

pd.set_option(),pd.get_option()用于使用Notebook做展示;

pd.set_option('display.max_columns',30),pd.set_option('display.max_colwidth',100),

pd.set_option('display.max_colwidth',100)。

 


https://www.xamrdz.com/lan/5s81935604.html

相关文章: