我有一个带有ID号的大型数据框:
ID.head()
Out[64]:
0 4806105017087
1 4806105017087
2 4806105017087
3 4901295030089
4 4901295030089
这些现在都是字符串。
我想转换为int
不使用循环-为此我使用ID.astype(int)
。
问题是我的某些行包含无法转换为的脏数据int
,例如
ID[154382]
Out[58]: 'CN414149'
如何(不使用循环)删除这些类型的事件,以便我可以astype
放心使用?
您需要errors='coerce'
向功能添加参数to_numeric
:
ID = pd.to_numeric(ID, errors='coerce')
如果ID
是列:
df.ID = pd.to_numeric(df.ID, errors='coerce')
但非数字会转换为NaN
,因此所有值都是float
。
对于int
需要转换NaN
到一些值,例如,0
然后转换为int
:
df.ID = pd.to_numeric(df.ID, errors='coerce').fillna(0).astype(np.int64)
样品:
df = pd.DataFrame({'ID':['4806105017087','4806105017087','CN414149']})
print (df)
ID
0 4806105017087
1 4806105017087
2 CN414149
print (pd.to_numeric(df.ID, errors='coerce'))
0 4.806105e+12
1 4.806105e+12
2 NaN
Name: ID, dtype: float64
df.ID = pd.to_numeric(df.ID, errors='coerce').fillna(0).astype(np.int64)
print (df)
ID
0 4806105017087
1 4806105017087
2 0
编辑:如果使用0.25+大熊猫,则可以使用integer_na
:
df.ID = pd.to_numeric(df.ID, errors='coerce').astype('Int64')
print (df)
ID
0 4806105017087
1 4806105017087
2 NaN
我有这个“file.csv”文件要和熊猫一起读: 使用 输出为: 我知道,列是一个完整的字符串,因为: 我需要将其作为字符串列表来阅读,如。我尝试了这个问题中提供的解决方案,但没有成功,因为我的和字符实际上会把事情搞砸。 预期输出应为:
问题内容: 我在系列中有一个类别变量。我想为每个唯一值分配整数ID,并使用ID创建一个新的系列,从而有效地将字符串变量转换为整数变量。最紧凑/最有效的方法是什么? 问题答案: 您可以使用pandas.factorize:
问题内容: 我已经阅读了很多SO答案,但是找不到明确的解决方案。 我在称为小时的df中有此数据: 我想将其转换为时间格式。但是当我这样做时: 结果包括今天的日期: 看来参数不起作用-如何获得没有显示日期的时间? 更新资料 以下内容可以正确设置时间格式,但是以某种方式,该列仍然是对象类型。为什么不转换为? 问题答案: 执行转换后,您可以使用datetime访问器仅访问或组件: 另外,您的格式字符串格
问题内容: 我已经读过一个对Pandas的SQL查询,并且值以dtype’object’的形式出现,尽管它们是字符串,日期和整数。我能够将日期“ object”转换为Pandas datetime dtype,但是在尝试转换字符串和整数时遇到错误。 这是一个例子: 将转换为日期时间可以: 但是尝试将转换为整数时出现错误: 注意:我尝试时遇到类似的错误 当尝试转换为字符串时,似乎什么也没有发生。 问
我有一个字段在熊猫DataFrame被导入为字符串格式。它应该是日期时间变量。如何将其转换为日期时间列,然后根据日期进行筛选。 示例: 数据帧名称:原始数据
问题内容: 我想替换列中的子字符串 到。 需求输出 我尝试,但它返回。 问题答案: 使用与更换和: