pandas中常用的函数整理,数据框取某行某列元素,读写文件,删除行列,缺失值判断和处理,数值替换,计算特征值,排序重命名,合并,去重

import pandas as pd
import numpy as np
#creat series
s=pd.Series([1,2,3],index=['a','b','c'])
pd.Series(np.array([1,2,3]),index=['a','b','c'])
pd.Series({ 'a':1,  'b':2,  'c':3})
#print character
s.values
s.index
s[0]
s['a']
#dataframe
df=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['bj','sh','sz'])
pd.DataFrame(np.arange(1,10).reshape(3,3),index=['a','b','c'],columns=['bj','sh','sz'])
pd.DataFrame({'bj':[1,4,7],'sh':[2,5,8],'sz':[3,6,9]},index=['a','b','c'])
#creat dataframe by series
df = pd.DataFrame([[1,4,7],[2,5,8],[3,6,9]],columns=['bj','sh','sz'])
#character
df.columns
df.columns = ['x1','x2','x3']
df.shape 
df.dtypes
df.index
df.head()
df.x1
df['x1']
df_new = df[['x1','x2']]
df['x2'] = range(3)
df['x1'] = pd.Series([2,3],index=[0,1])#将列为x1,行索引为0和1的值改为2,3
df_new = df.T
#read save file
df.to_csv('df.csv')
df = pd.read_csv('xxx.csv')
df.to_excel('xx.xlsx')
df = pd.read_excel('xx.xlsx')
#访问某行某列的元素
df.values[2][1]
df.iloc[2,1]
#cut
sub_df = df.iloc[1:2,:]
sub_df = df.iloc[1:2,0:2]
sub_df = df.loc[1:2,:'bj']
#drop
df.drop('sh',axis=1) #delete sh col
df.drop(2,axis=0)#delete 2 row
#nan
s=pd.Series([1,2,3,None,5])
s.isnull() 
s.dropna()#delete null and return
df.isnull()
df.dropna(axis=0/1,how='any/all',thresh=None)
'''axis表示删除行为nan或者列为nan;
any表示只要有一个为空,all表示行中的每个元素或者列中的每个元素为空;
thresh是阈值的意思,表示某行或者某列nan的个数达到阈值的个数时才删除该行或该列。'''
df.fillna(value=1)#replace null with 1
#replace
s.replace(to_replace=[2,3],value=[20,30]) 
#compute
df.sum()  #默认按照列进行求和,nan的值被忽略
df.min()  #默认按照列求最小值
df.max()  #默认按照列求最大值
df.mean()  #默认按照列求平均值
df.describe()  #默认按照列进行描述
df.sum(axis=1)  #按行求和,nan的值被忽略
#axis=0表示对横轴进行操作,axis=1表示对纵轴进行操作

#sort
s.sort_values()
s.sort_index() 
df.sort_values(by='bj')
#rename of df
df.index = list(range(3))
df=df.rename(index=str,columns={'bj':'x1','sh':'x2','sz':'x3'})
#merge and concat
df1=pd.DataFrame(np.arange(11,20).reshape(3,3),index=['a','b','c'],columns=['x1','x2','x3'])
df1['x1']=pd.Series([1,2,3],index=['a','b','c'])
df2=pd.merge(df1,df,on='x1')
pd.merge(df1,df,how='right')
pd.concat([df1,df])
#delete repeat
len(df)
len(df['x1'].unique())#查看a列中不重复数据的多少
df['x1'].duplicated()
df['x1'].drop_duplicates() #删除重复值
df.drop_duplicates()  #删除完全重复的行 
发布了72 篇原创文章 · 获赞 37 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/xspyzm/article/details/102959763
今日推荐