文章目录
1、把某一列的字符值转换为数字(map)
使用map函数就可以实现把某一列的字符类型的值转换为数字。
class_mapping = {'A':0, 'B':1}
data[class] = data[class].map(class_mapping)
首先定义一个字典,然后使用map方法就可以把某一列的字符类型的值转换为数字。
2、统计某个值的出现次数(value_counts)
使用value_counts函数即可。代码:
import pandas as pd
import numpy as np
df = pd.DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one'],'data1':np.random.randn(5),'data2':np.random.randn(5)})
print(df)
df['key2'].value_counts()
结果:
参考:
【Pandas】统计某个值的出现次数
3、获取一列出现过的值(unique)
使用unique()函数即可,代码:
import pandas as pd
import numpy as np
df = pd.DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one'],'data1':np.random.randn(5),'data2':np.random.randn(5)})
print(df)
print(df['key1'].unique())
结果:
key1 key2 data1 data2
0 a one -0.066452 1.850358
1 a two 0.861040 -2.977021
2 b one 0.422862 1.871435
3 b two -0.060591 -2.044589
4 a one 0.779476 -0.390922
['a' 'b']
4、根据条件筛选数据
多个条件
train_[(train_['ID']==0) & (train_['QUEUE_ID']==2)]
单个条件
train_[train_['ID']==0]
5、统计有多少空值
代码
data.isna().sum()
结果展示了每一列的空值情况
province 0
adcode 0
model 0
bodyType 0
regYear 0
regMonth 0
salesVolume 5280
id 0
forecastVolum 36960
popularity 5280
carCommentVolum 5280
newsReplyVolum 5280
label 5280
6、读取excel
7、数据去重
8、数据合并
包括merge和contract方法
9、写入excel
9.1 写入一个excel
一般不需要指定写入引擎,pandas会根据你的系统和excel格式自动选,缺少的引擎pip install安装就好。
file_name='mdp_original.xlsx'
dataset_original.to_excel(file_name,sheet_name='version1',index=False)
9.2 写入多个sheet
代码如下:
with pd.ExcelWriter(file_name) as writer:
dataset_original.to_excel(writer,sheet_name='original',index=False)
dataset_v1.to_excel(writer,sheet_name='V1',index=False)
dataset_v2.to_excel(writer,sheet_name='V2',index=False)
10 isin函数做筛选
有点类似于python中的in关键字,主要是判断dataframe特定列是否在某个范围内,可以看一下这个示例:
>>> import numpy as np
>>> import pandas as pd
#创建数据
>>> df=pd.DataFrame(np.random.randint(1,16,size=(4,4)),columns=['A','B','C','D'])
>>> print(df)
A B C D
0 2 7 1 11
1 2 5 15 15
2 4 10 7 15
3 3 11 12 2
>>> l=list(range(1,8))
>>> print(l)
[1, 2, 3, 4, 5, 6, 7]
>>> df['C'].isin(l)
0 True
1 False
2 True
3 False
Name: C, dtype: bool
# 筛选
>>> data=df[df['C'].isin(l)]
>>> print(data)
A B C D
0 2 7 1 11
2 4 10 7 15
>>>
11、缺失值处理
#空值处理方式
data.fillna(data.mean(), inplace = True)#以均值填充
data.fillna(0, inplace = True)#以0填充
data.dropna(inplace=True) #剔除空值,针对空值数量相对总体而言可以忽略的情况