一、文件读取和写入
1. 文件读取
-
csv:pd.read_csv(filename)
-
txt :pd.read_table(filename)
-
excle:pd.read_excel(filename)
示例:
import pandas as pd
df_csv = pd.read_csv('my_csv.csv')
Out[6]:
col1 col2 col3 col4 col5
0 2 a 1.4 apple 2020/1/1
1 3 b 3.4 banana 2020/1/2
2 6 c 2.5 orange 2020/1/5
3 5 d 3.2 lemon 2020/1/7
header=None表示第一行不作为列名,例如:
import pandas as pd
df_csv = pd.read_csv('my_csv.csv',header=None) #原本一共4行,现在变成了5行
Out[9]:
0 1 2 3 4
0 col1 col2 col3 col4 col5
1 2 a 1.4 apple 2020/1/1
2 3 b 3.4 banana 2020/1/2
3 6 c 2.5 orange 2020/1/5
4 5 d 3.2 lemon 2020/1/7
usecols表示读取指定列:(输入为列的名称)
import pandas as pd
df_csv = pd.read_csv('my_csv.csv',usecols=['col1']) #读取第一列
Out[13]:
col1
0 2
1 3
2 6
3 5
nrows表示读取的行数:(输入为整数)
import pandas as pd
df_csv = pd.read_csv('my_csv.csv',nrows=2) #读取两行
Out[15]:
col1 col2 col3 col4 col5
0 2 a 1.4 apple 2020/1/1
1 3 b 3.4 banana 2020/1/2
2.文件写入
- csv:data.to_csv(path, index = False) index=False表示将索引去除
- excel:data.to_excel(path, index = False)
- txt:data.to_csv(path,sep='\t', index=False)
二.基本数据结构
1.series
由四个部分组成,数据:data,索引:index,存储类型:dtype,名称:name;例如:
s = pd.Series(data = [1,10,100],index=[1,2,3],name = 'my_series')
Out[20]:
1 1
2 10
3 100
Name: my_series, dtype: int64
访问这些属性可以分别用:数据:s.values,索引:s.index,类型:s.dtype,名称:s.name访问;
2.DataFrame
DataFrame在sreies的基础上,将列进行了扩展,由原来的一维变为了二维。
In [33]: df = pd.DataFrame(data = {'col_0': [1,2,3], 'col_1':list('abc'),
....: 'col_2': [1.2, 2.2, 3.2]},
....: index = ['row_%d'%i for i in range(3)])
....:
In [34]: df
Out[34]:
col_0 col_1 col_2
row_0 1 a 1.2
row_1 2 b 2.2
row_2 3 c 3.2
可以按列索引,取出一列或者多列:
In [35]: df['col_0'] #取出某一列
Out[35]:
row_0 1
row_1 2
row_2 3
Name: col_0, dtype: int64
In [36]: df[['col_0', 'col_1']] #取出多列
Out[36]:
col_0 col_1
row_0 1 a
row_1 2 b
row_2 3 c
三、常见基本函数
1.汇总函数
head
函数表示返回表的前n行,tail
返回后n行:
In [46]: df.head(2)
Out[46]:
School Grade Name Gender Height Weight Transfer
0 Shanghai Jiao Tong University Freshman Gaopeng Yang Female 158.9 46.0 N
1 Peking University Freshman Changqiang You Male 166.5 70.0 N
In [47]: df.tail(3)
Out[47]:
School Grade Name Gender Height Weight Transfer
197 Shanghai Jiao Tong University Senior Chengqiang Chu Female 153.9 45.0 N
198 Shanghai Jiao Tong University Senior Chengmei Shen Male 175.3 71.0 N
199 Tsinghua University Sophomore Chunpeng Lv Male 155.7 51.0
info
返回表的信息概况, describe
返回表中数值列对应的主要统计量 :
In [48]: df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 200 entries, 0 to 199
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 School 200 non-null object
1 Grade 200 non-null object
2 Name 200 non-null object
3 Gender 200 non-null object
4 Height 183 non-null float64
5 Weight 189 non-null float64
6 Transfer 188 non-null object
dtypes: float64(2), object(5)
memory usage: 11.1+ KB
In [49]: df.describe()
Out[49]:
Height Weight
count 183.000000 189.000000
mean 163.218033 55.015873
std 8.608879 12.824294
min 145.400000 34.000000
25% 157.150000 46.000000
50% 161.900000 51.000000
75% 167.500000 65.000000
max 193.900000 89.000000
2.统计函数
quantile:返回分位数
In [53]: df_demo.quantile(0.75)
Out[53]:
Height 167.5
Weight 65.0
Name: 0.75, dtype: float64
count:返回非缺失值个数
In [54]: df_demo.count()
Out[54]:
Height 183
Weight 189
dtype: int64
idxmax:返回最大值索引
In [55]: df_demo.idxmax() # idxmin是对应的函数
Out[55]:
Height 193
Weight 2
dtype: int64
3.唯一值函数
主要用来统计表中类别的个数。
上面这几个函数只能针对某一列使用,若对多列使用,应该用drop_duplicates函数,相当于是去除重复的值。
对于drop_duplicates函数中的keep参数:keep=first表示保留第一次出现的行,keep=last表示保留最后一次,False表示把重复的全都剔除。
4.替换函数
- 映射替换:replace
- 逻辑替换:where和mask;
where
函数在传入条件为False
的对应行进行替换,而mask
在传入条件为True
的对应行进行替换。 - 数值替换:round,四舍五入;abs,取绝对值;clip,上下边界截断。
5.排序函数
- 值排序:sort_values,其中ascending参数默认为True升序,false为降序 (按列值排)
- 索引排序:sort_index,索引用leve表示,排序顺序是按字母的顺序 (按行值排)
6.apply方法
四、窗口对象
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。