pandas数据清洗详细教程_excel数据清洗工具

pandas数据清洗详细教程_excel数据清洗工具Pandas数据清洗常见方法01读取数据df=pd.read_csv(‘文件名称’)02查看数据特征df.info()03查看数据量df.shape04查看各数字类型的统计量df.describe()05去除重复值df.drop_duplicates(inplace=True)06重置索引data.reset_index(inplace=True,drop=True)07查看缺失值信息data.loc[data[‘列名’].isnull()]01

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Pandas 数据清洗常见方法

01 读取数据

df=pd.read_csv('文件名称')

02 查看数据特征

df.info()

03 查看数据量

df.shape

04 查看各数字类型的统计量

df.describe()

05 去除重复值

df.drop_duplicates(inplace=True)

06 重置索引

data.reset_index(inplace=True,drop=True)

07 查看缺失值信息

data.loc[data['列名'].isnull()]

01 每一列数据的缺失值进行统计

data.isnull().sum()

08 填充缺失值

# 用0填充
data=data.fina(0)
# 将这一列的空值填充为平均值,类型为int类型
df_all['列名'] = df_all.列名.fillna(int(df_all.列名.mean())).astype('int')

09 查看是否还有空值

data.isnull().any()

10 对某列数据计数统计

data['列名'].value_counts

11 对某列数据计数并排序

data['列名'].value_counts().sort_values()

01 统计店名的销售额,并排序

data.groupby('店名')['销售额'].sum().sort_values

12 遍历查看数据集所有列的数据类型

cols=df_tm.columns
for col in cols:
	print(col+':'+str(df_tm[col].dtype))

13 转换数据类型

df['列名']=df.列名.astype('int')

01 去掉温度列后的℃,并将数据转为int类型

df.loc[:,'bwendu']=df['bwendu'].str.replace('℃','').astype('int32')

02 对某列数据转换类型

data['列名']=data['列名'].astype(int)

14 删除指定列中有空值的行

mydf.dropna(subset=['列名'],inplace=True)
mysf=mydf.dropna(subset=['列名'])

15 过滤某列中不符合类型的数据

data=data[`data['列名'].isin(['你好'])]

16 转换时间格式

例:20110/02/02====》202-02-02

data['列名']=pd.to_datetime(data)['time']

17 删除某列

data.drop(['列名'],axis=1,inplace=True)

18 重命名列

rename_list={ 
   '原列名1:'新列名1',...}
df.rename(rename_list,axis=1,inplace=True)

19 提取多列数据

df[['列1','列2','列3']]

20 多表合并

df_all=pd.merge(table1,table2,on='参照列',how='inner')

21 去除空格

a.replace('\s+','',regex=True,inplace=True) 

典型案例

01 提取国家和城市,生成新列

image-20201021111102299

# ciy: 提取国家和城市
def transform_country(x):
    if '中国' in x:
        return '中国'
    else:
        return x 
    
def transform_city(x):
    if '中国' in x:
        return x[2:]
    else:
        return x 

df_all['country'] = df_all.city.map(lambda x: transform_country(x))
df_all['city'] = df_all.city.map(lambda x: transform_city(x))

image-20201021111204599

02 提取数值

image-20201021111601709

# height:提取数值
df_all['height'] = df_all.height.str.extract('(\d+)').astype('int')
df_all.head(2) 

image-20201021111515109

03 提取年龄

image-20201021111657124

# age: 提取年龄
df_all['age'] = df_all.age.str.extract('.*?\s*\((.*?)岁\)').astype('float')
df_all.head(2)

image-2020102111174978004 循环遍历某列所有数据,在后面加上指定字段:

image-20201021151124693

data['列名'].apply(lambda x:str(x)+'天')

注释:str(x) 为了将数据转换为字符类型

image-20201021151750560

05 提取汉字

image-20201021151941526

df4['name'] = df4.name.str.extract('([\u4e00-\u9fa5]+)')

image-20201021152010672

06 时间索引格式转换为普通列表格式

m3 = data1['出发时间'].value_counts().sort_index()[:]
m4 = m3['2020'].index
n4 = m3['2020'].values.tolist()
# 将其转化为时间格式的数组
a1 = m4.to_pydatetime()
# 时间转换成以下格式
a2 = np.vectorize(lambda s: s.strftime('%Y-%m-%d'))(a1)

a3 = pd.Series(a2).tolist

输出m4,如下图所示

image-20201021153522738

输出a1,如下

image-20201021154325579

输出a2 ,如下

image-20201021154420999

输出a3,如下

image-20201021154449245

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196401.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Recyclerview 刷新「建议收藏」

    Recyclerview 刷新「建议收藏」前言:recyclerview比起listview功能上更加丰富外(如横向列表),在Item复用上也更加灵活,比如listview的某个Item数据需要更新,要通过notifyDataSetChanged方法对全部Item进行刷新,而recyclerview则可以精准刷新。介绍:(1)notifyItemChanged(position)只刷新该position的Item,即只是该Item调用onBindViewHolder,因此如果对数据源进行插、移除操作不能改方法只刷新操作的Item,毕竟该

  • 合宙Air720U&724U&722U Lua 固件更新说明

    合宙Air720U&724U&722U Lua 固件更新说明Lua固件更新说明如下:首推1.3基线,不支持1.2基线空中升级到1.3基线版本目录名称1.3底层core下载地址1.2底层core下载地址上层软件下载地址1.3底层core固件更新说明1.2底层core固件更新说明上层脚本更新说明空间说明Luat二次开发使用的Flash空间有两部分:脚本区和文件系统区脚本区:通过Luatools烧写的所有文件,都存放在此区域非TTS版本为720KB,TTS版本为426KB;如果烧录时,超过此限制,Luatools会报错不同版本的core可能会有差异,以

  • 网页音乐播放器接口

    网页音乐播放器接口1、Dewplayer音乐播放器2、我的博客首页虾米播放器代码:<embedsrc=”http://www.xiami.com/widget/0_1769834090/singlePlayer.swf”type=”application/x-shockwave-flash”width=”257″height=”33″wmode=”tra…

  • FLAG_ACTIVITY_NEW_TASK介绍

    FLAG_ACTIVITY_NEW_TASK介绍FLAG_ACTIVITY_NEW_TASKStarttheactivityinanewtask.Ifataskisalreadyrunningfortheactivit

  • IntelliJ IDEA卸载与安装

    IntelliJ IDEA卸载与安装一、卸载(首次安装可跳过)导出配置运行卸载程序删除缓存&amp;配置&amp;插件卸载完成二、下载安装(一)官网:官网:http://www.jetbrains.com/idea/download/#section=windows官方文档:http://www.jetbrains.com/help/idea/meet-inte…

  • java软件工程师前景_培养java工程师

    java软件工程师前景_培养java工程师从各大招聘网上我们就能看出,同等软件工程师的就业前景是远比网络工程师就业前景要好很多,年薪在10万以上的软件工程师还只是一个起点,随着经验的增加,年薪超20万的也是很常见的,而其它专业的发展前景是远比不上Java软件工程师的就业前景的。Java软件工程师就业前景为什么这么好呢?原因之一:软件工程师可谓是软件项目开发的掌舵者,一名优秀的软件工程师应当具有较强的逻辑思维能力,对于技术的发展有敏锐的嗅觉…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号