一、载入数据,导入相关库
载入数据:
df=pd.read_csv('路径')
二、数据基本操作
1.逐块读取
格式:chunker=pd.read csv('train.csv'.chunksize=1000
for i in chunker:
print(i)
2.查看基本信息(总列数,非空值数量,数据类型等):df.info()
3.查看前/后几列数据(2)
df.head()/df.tail()
4.判断数据是否为空:df.isnull()
5.保存数据:df.to_csv()
6.查看列名:全部——df.columns某A列(2)——df['A']/df.A
7.更改表头
column={'header1':'表头1','header2':'表头}
df.rename(columns=column.inplace=True)(inplace=True时,直接在原始数据上进行重命名操作;=False时,返回重命名后新的DateFrame,原始数据不变)
8.删除/隐藏某列
删除:
del dff'A'1/df.drop(['A'], axis=1)
df=df.drop(['a'],axis=1)
隐藏:df.drop
9.数据筛选:
范围筛选:df=df[(df['Age']<50)&(df['Age']>1
0)1筛选在10-50的数据,并修改。
显示某行(2):df.loc[[行数],['列名']]
df.iloc[[行数],['列数']]
索引位置实现筛选
10.构建frame:
frame=pd.DataFrame(np.arange(12).reshape(3,4)
index=['1', '0', '2']
columns=['X', 'B','F','G'])
11.数据排序:根据索引排序:frame.sort_index(axis=1, asxending=False, inplace='True')(axis=1为列,ascending中False为降序,默认axis=0,升序排序。inplace默认False.若想改变原数据,需写成True.以下同理)
根据值排序:frame.sort_value(by
='列名',ascending=",inplace=') (不接受axis参数)
12.算术运算(这里仅简单记录加法):+:frame_1['列名]+frame_2['列名]或使用apply函数:
df1.apply(lambda row:row['列
名']+row['列名'l,axis=1)
13.筛选极值
df.max()(若对象为DataFrame或Series)
14.describe查看数据基本信息:df.describe()
count:样本数据大小
mean:样本数据的平均值
std:样本数据的标准差
min:样本数据的最小值
25%:样本数据25%的时候的值
50%:样本数据50%的时候的值
75%:样本数据75%的时候的值
max:样本数据的最大值
15.筛选非空行/空行:
single=df[df[列名a'l.isnull()] (single为a为空的列)
single=df[dff'列名b'l.isnull()1 (dual为a不为空的列)
16.重复数据删除:
例:df.drop_duplicates('列名a',keep='first')
相同列名a保留第一条
17.数据分组:
种类分组:group=df.groupby(['列名a','列名b']).size()(若想统计各组个数就加后面的size,否则不用)
条件分组:例:df'列名a'l(要分组的列)=df['列名a].apply(lambdax(lambda函数:匿名函数,令x为列a中的元素,后续则是关于x的条件):high'if int(x)>100 else 'low' if int(x)<50 else 'mid')