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)


相关推荐

  • docker如何卸载_docker 删除容器

    docker如何卸载_docker 删除容器2.卸载docker相关包输入如下命令查看相关包把匹配到的包执行yumremove删除3.查看docker卸载成功

  • WebViewJavascriptBridge

    WebViewJavascriptBridgeWeb页面中的JS与iOSNative如何交互?JS和iOSNative就好比两块没有交集的大陆,如果想要使它们相互通信就必须要建立一座“桥梁”。WebViewJavascriptBridge是盛名已久的JSBridge库,它仅使用了少量代码就实现了对于MacOSX的WebView以及iOS平台的UIWebView和WKWebView三种组件的完美支持。WebViewJavascriptBridge主要是作为MacOSX和iOS端(Na.

    2022年10月21日
  • etl算法详解_数据拉链处理什么意思

    etl算法详解_数据拉链处理什么意思所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。   在历史表中对客户的一生的记录可能就这样几条记录,避免了按每一天记录客户状态造成的海量存储的问题:(NAME)人名(START-DATE)开始日期(END-DT)结束日期(STAT)状态    client             19000101                       

    2022年10月16日
  • Jprofiler 7.2.3 : The network connection has been lost. The JVM has terminated unexpectedly

    Jprofiler 7.2.3 : The network connection has been lost. The JVM has terminated unexpectedlyJProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的JavaEE和JavaSE应用程序开发的。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。JProfiler的是一个独立的应用程序,是Eclipse软件的插件。它允许两个内存剖面评估内存使用情况和动态分配泄漏和CPU剖析,以评估线程冲突

  • linux命令大全(手册)_Linux高频命令汇总

    linux命令大全(手册)_Linux高频命令汇总史上最全的Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!

  • 大数据监控平台实践之路

    大数据监控平台实践之路大数据监控平台实践之路一、监控体系业务层:应用层:系统层:二、架构设计Telegraf:input:output:调度频率:服务启动:InfluxDB:服务启动:常用命令:Grafana:Grafana主要特性:简单使用介绍:原文地址:大数据监控平台实践之路一、监控体系监控粒度、监控指标完整性、监控实时性是评价监控系统的三要素。从分层体系可以把监控系统分为三个层次:业务层:业务系统…

发表回复

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

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