csv文件数据处理基本操作和基础函数
一、文件读取和写入
import pandas as pd
1.读取
df=pd.read_csv(‘文件名字’)
csv格式用read_csv
txt格式用read_table
excel格式用read_excel
2.写入
指输出已处理的数据
df.to_csv(‘文件名字’)
excel格式用to_excel
二、基本数据结构
主要有series和dataframe
1.series
(a)创建
对于一个Series,其中最常用的属性为值(values),索引(index),名字(name),类型(dtype)

s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='这是一个Series',dtype='float64')
s

(b)访问series属性
s.values
s.name
s.index
s.dtype
©取出某元素
s[‘a’]
2.DataFrame
(a)创建

df = pd.DataFrame({'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6,5.8]},index=list('一二三四五'))
df
col1	col2	col3

一 a 5 1.3
二 b 6 2.5
三 c 7 3.6
四 d 8 4.6
五 e 9 5.8
(b)从DataFrame取出一列
df[‘col1’]
type(df[‘col1’])类型为series
©修改行或列名
df.rename(index={‘一’:‘one’},columns={‘col1’:‘new_col1’})
行名字为‘一’的改为‘one’
列名字为‘col1’的改为‘new_col1’
(d)调用属性和方法
df.index 行名字
df.columns 列名字
df.values 所有值
df.shape 显示几行几列
(e)索引自动对齐

df1 = pd.DataFrame({'A':[1,2,3]},index=[1,2,3])
df2 = pd.DataFrame({'A':[1,2,3]},index=[3,1,2])
df1-df2 #由于索引对齐,因此结果不是0
A

1 -1
2 -1
3 2
(f)删除、添加列
指定删除某行、列

df.drop(index='五',columns='col1') #设置inplace=True后会直接在原DataFrame中改动
del df['col1']

pop方法直接在原来的DataFrame上操作,且返回被删除的列,与python中的pop函数类似
我是处理csv数据的,一般不用这个

df['col1']=[1,2,3,4,5]
df.pop('col1')

一 1

二 2

三 3

四 4

五 5

增加列直接增加

df1[‘B’]=0 增加B列,值为0

用assign增加一列,但不会更改原dataframe,若想确保更改用

a=df1.assign(C=pd.Series(list(‘def’)))

print(a)

(g)根据类型选择列

df.select_dtypes(include=[‘number’])

(h)将series转换为DataFrame

s为一个series,可以是大表中的行也可以是列

s.to_frame()

三、常用基本函数

1.nunique和unique

显示有多少个唯一值,输出结果为数字

df[‘physics’].nunique()

显示所有的唯一值,不显示多少个把值显示出来

df[‘physics’].unique()

2.count和value_counts

count返回非缺失元素个数,即physics这列有多少个非缺失值

df.[‘physics’].count()

value_counts返回每个元素多少个

df.[‘physics’].value_counts()

acces 处理csv csv文件处理_数据


3.info和describe

df.info()

info函数返回有哪些列、有多少非缺失值、每列的类型

df.describe()

describe默认统计数值型数据的各个统计量

可以自行选择分位数

df.describe(percentiles=[.05, .25, .75, .95])

4.idxmax和nlargest

idxmax返回最大值

df.[‘math’].idxmax

nlargest返回前几个大的元素值

df.[‘math’].nlatgest(5)

5.clip和replace

clip对超过或低于某些值得数进行截断

Math小于50的值记为50,大于50的值记为80

df[‘Math’].clip(50,80).head()

将Address列的’street_1’,‘street_2’替换为’one’,‘two’;或者用字典修改

df[‘Address’].replace([‘street_1’,‘street_2’],[‘one’,‘two’]).head()

四、排序

1.索引排序

df.set_index(‘Math’).sort_index() 将math列设置为索引并排序

2.值排序

df.sort_values(by=‘Class’)根据某列值进行排序

df.sort_values(by=[‘Address’,‘Height’])

多个值排序,即先对第一层排,在第一层相同的情况下对第二层排序

注:
1.value_count不统计缺失值
2.sum加总/mean均值/median中位数/mad根据平均值计算平均绝对离差/min/max/abs绝对值/std标准差/var方差/quantile样本分位数/cummax累计最大值/cumsum累计最小值/cumprod¶累计积