如何将无效的数据类型输入替换为熊猫数据框中的“无”

艾米

想要替换“数字”和“日期”列中的所有无效数据类型。初始表是这样的:

name    number      date
a       1.2         123.2
b       123.2       3/13/2019
c       2.3         3/14/2019
d       569         3/15/2019
e       abc         3/15/2019
f       30          abc 
g       39.8        -3
h       3/21/2019   3/19/2019
i       -395        3/20/2019
j       4           3/21/2019

清理后,该表应如下所示:所有无效的数据类型输入均已替换为none:

name    number      date
a       1.2         
b       123.2       3/13/2019
c       2.3         3/14/2019
d       569         3/15/2019
e                   3/15/2019
f       30           
g       39.8        
h                   3/19/2019
i       -395        3/20/2019
j       4           3/21/2019

我只能将字符串输入替换为None,我不知道如何将数字输入替换为'date'列中的None,也不知道如何将日期时间输入替换为'number'列中的None如果datetime列中有数字输入或number列中有日期时间输入,我的代码将显示错误:

'float'对象没有属性'strftime'

datetime2数据类型到datetime数据类型的转换导致超出范围的值。

df['date']=df['date'].apply(lambda x: None if str(type(x))=="<class 'str'>" else x)

df['date']=df['date'].apply(lambda x: x.strftime('%m/%d/%Y')if not pd.isnull(x) else '')

df['date'] = pd.to_datetime(df['date'], errors='coerce')

df['number'] = df['number'].apply(lambda x: None if str(type(x))=="<class 'str'>" else x)
科威

可能有更好的方法,但是我立即想到的方法是使用正则表达式。这是解决方案。

import numpy as np
import pandas as pd
import re

>>>df
name    number      date
a       1.2         123.2
b       123.2       3/13/2019
c       2.3         3/14/2019
d       569         3/15/2019
e       abc         3/15/2019
f       30          abc 
g       39.8        -3
h       3/21/2019   3/19/2019
i       -395        3/20/2019
j       4           3/21/2019


# Matches m/dd/yyyy
dt_pattern = r'[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}'
dt = re.compile(dt_pattern)
# alphabet strings
wd_pattern = r'[a-zA-Z]+'
wd = re.compile(wd_pattern)

df.loc[:,'date'] = [d if dt.match(str(d)) else np.nan for d in  df.loc[:, 'date']]
df.loc[:,'number'] = [d if not any([wd.match(str(d)), dt.match(str(d))]) else np.nan for d in  df.loc[:, 'number']]
df['date'] = pd.to_datetime(df['date'], errors='coerce')

>>>df
  name number       date
0    a    1.2        NaT
1    b  123.2 2019-03-13
2    c    2.3 2019-03-14
3    d    569 2019-03-15
4    e    NaN 2019-03-15
5    f     30        NaT
6    g   39.8        NaT
7    h    NaN 2019-03-19
8    i   -395 2019-03-20
9    j      4 2019-03-21

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Python

如何将熊猫数据框中的日期转换为“日期”数据类型?

来自分类Python

如何将熊猫数据框中的日期转换为“日期”数据类型?

来自分类Dev

如何将特殊字符列表替换为熊猫数据框中的单个字符

来自分类Python

如何将熊猫数据框中的负数替换为零

来自分类Dev

如何找出熊猫数据框中单列的数据类型?

来自分类Dev

如何将Mobus数据数组的数据类型转换为REAL数据类型

来自分类Dev

如何将数据框中的列的数据类型从Char更改为Date

来自分类Dev

如何将生成的数据转换为熊猫数据框

来自分类Dev

如何将Date数据类型转换为整数?

来自分类Dev

如何将NSInteger转换为NSString数据类型?

来自分类Dev

如何将 PyObjects 转换为 C 数据类型?

来自分类Dev

如何将 nvarchar 数据类型转换为数字

来自分类Python

如何将熊猫数据框的数据类型更改为具有定义格式的字符串?

来自分类Dev

在熊猫数据框中,如何将所有索引标签(类型为DatetimeIndex)转换为datetime.datetime?

来自分类Dev

Python熊猫,如何将数据框的NA值替换为在另一个数据框中查找的值?

来自分类Dev

如何将数据框的列值替换为与输入值匹配的空字符串?

来自分类Dev

熊猫到火花数据框将日期时间数据类型转换为bigint

来自分类Dev

如何将熊猫数据框中的列转换为数据时间?

来自分类Dev

如何将scala中的类转换为代数数据类型?

来自分类Dev

如何将JSON中的数组转换为控制器可以处理的数据类型

来自分类Dev

如何将MATLAB中struct的所有字段的数据类型转换为double?

来自分类Dev

在SSIS中,如何将unicode数据类型转换为excel列?

来自分类Dev

如何将熊猫数据框转换为单个列表

来自分类Dev

如何将熊猫数据框行转换为多行

来自分类Dev

如何将Frozendict对象转换为熊猫数据框

来自分类Dev

如何将熊猫数据框转换为命名元组

来自分类Linux

如何将熊猫数据框转换为分层字典

来自分类Dev

如何将python字典转换为熊猫数据框

来自分类Dev

如何将火炬张量转换为熊猫数据框?

Related 相关文章

  1. 1

    如何将熊猫数据框中的日期转换为“日期”数据类型?

  2. 2

    如何将熊猫数据框中的日期转换为“日期”数据类型?

  3. 3

    如何将特殊字符列表替换为熊猫数据框中的单个字符

  4. 4

    如何将熊猫数据框中的负数替换为零

  5. 5

    如何找出熊猫数据框中单列的数据类型?

  6. 6

    如何将Mobus数据数组的数据类型转换为REAL数据类型

  7. 7

    如何将数据框中的列的数据类型从Char更改为Date

  8. 8

    如何将生成的数据转换为熊猫数据框

  9. 9

    如何将Date数据类型转换为整数?

  10. 10

    如何将NSInteger转换为NSString数据类型?

  11. 11

    如何将 PyObjects 转换为 C 数据类型?

  12. 12

    如何将 nvarchar 数据类型转换为数字

  13. 13

    如何将熊猫数据框的数据类型更改为具有定义格式的字符串?

  14. 14

    在熊猫数据框中,如何将所有索引标签(类型为DatetimeIndex)转换为datetime.datetime?

  15. 15

    Python熊猫,如何将数据框的NA值替换为在另一个数据框中查找的值?

  16. 16

    如何将数据框的列值替换为与输入值匹配的空字符串?

  17. 17

    熊猫到火花数据框将日期时间数据类型转换为bigint

  18. 18

    如何将熊猫数据框中的列转换为数据时间?

  19. 19

    如何将scala中的类转换为代数数据类型?

  20. 20

    如何将JSON中的数组转换为控制器可以处理的数据类型

  21. 21

    如何将MATLAB中struct的所有字段的数据类型转换为double?

  22. 22

    在SSIS中,如何将unicode数据类型转换为excel列?

  23. 23

    如何将熊猫数据框转换为单个列表

  24. 24

    如何将熊猫数据框行转换为多行

  25. 25

    如何将Frozendict对象转换为熊猫数据框

  26. 26

    如何将熊猫数据框转换为命名元组

  27. 27

    如何将熊猫数据框转换为分层字典

  28. 28

    如何将python字典转换为熊猫数据框

  29. 29

    如何将火炬张量转换为熊猫数据框?

热门标签

归档