pandas常用操作整理

1、把某一列的字符值转换为数字(map)

使用map函数就可以实现把某一列的字符类型的值转换为数字。

class_mapping = {
    
    'A':0, 'B':1}
data[class] = data[class].map(class_mapping)

首先定义一个字典,然后使用map方法就可以把某一列的字符类型的值转换为数字。

参考:
使用pandas把某一列的字符值转换为数字的实例

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

使用pandas读取excel

7、数据去重

Pandas数据的去重,替换和离散化,异常值的检测

8、数据合并

包括merge和contract方法

pandas-数据的合并与拼接

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
>>> 

参考自pandas中isin()函数及其逆函数使用

11、缺失值处理

#空值处理方式
data.fillna(data.mean(), inplace = True)#以均值填充
data.fillna(0, inplace = True)#以0填充
 
data.dropna(inplace=True) #剔除空值,针对空值数量相对总体而言可以忽略的情况

参考:pandas nan值判断与处理

猜你喜欢

转载自blog.csdn.net/u012949658/article/details/109696051
今日推荐