如何将熊猫列中的一系列字符串转换为整数

第23条

我有一个熊猫数据框,其中的日期列格式为“ 2016-05-03”,这些是字符串btw。我需要将它们从字符串转换为int并在连字符('-')处拆分,仅提取年份,以便[0]。

这是我尝试将字符串转换为整数的方法:

tyc.startDate = tyc.startDate.astype(np.int64) 

但是它正在返回并且出错:

ValueError:以10为基数的int()的无效文字:'2015-06-01'

这是我为拆分所做的:

tyc.startDate.str.split('-')[0]

tyc.startDate.str.split('-', [0]) 

但这也不起作用,它正在拆分并以这种形式返回该列中所有行的列表:['2015','06','01'],我想将这一年拆分!

我敢肯定有一种简单的方法可以将其转换为int并在位置0处拆分为('-'),然后将其作为新列放入df中,请帮忙!

耶斯列尔

我相信您的数据包含NaNs或不包含日期时间值:

tyc = pd.DataFrame({'startDate':['2016-05-03','2017-05-03', np.nan],
                    'col':[1,2,3]})
print (tyc)
   col   startDate
0    1  2016-05-03
1    2  2017-05-03
2    3         NaN

使用str[0]每一行的第一个返回列表值第一。但是然后出现了问题-有些NaNs无法转换为int(设计)-所以输出是浮动的:

print (tyc.startDate.str.split('-').str[0].astype(float))
0    2016.0
1    2017.0
2       NaN
Name: startDate, dtype: float64

另一个解决方案是将datetime转换为datetimeto_datetime并通过year以下方式解析year

print (pd.to_datetime(tyc.startDate, errors='coerce'))
0   2016-05-03
1   2017-05-03
2          NaT
Name: startDate, dtype: datetime64[ns]

print (pd.to_datetime(tyc.startDate, errors='coerce').dt.year)
0    2016.0
1    2017.0
2       NaN
Name: startDate, dtype: float64

解决方案NaN

tyc['year'] = pd.to_datetime(tyc.startDate, errors='coerce').dt.year
print (tyc)
   col   startDate    year
0    1  2016-05-03  2016.0
1    2  2017-05-03  2017.0
2    3         NaN     NaN

1。

NaNs by删除所有行,dropna然后将其强制转换为int:

tyc = tyc.dropna(subset=['year'])
tyc['year'] = tyc['year'].astype(int)
print (tyc)
   col   startDate  year
0    1  2016-05-03  2016
1    2  2017-05-03  2017

2。

NaNs替换为一些int值,例如1by fillna,然后将其强制转换为int

tyc['year'] = tyc['year'].fillna(1).astype(int)
print (tyc)
   col   startDate  year
0    1  2016-05-03  2016
1    2  2017-05-03  2017
2    3         NaN     1

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在熊猫中,如何将一系列浮点数或无浮点数转换为带整数的字符串

如何将一系列JSON字符串转换为一个json文件?

如何将一系列键替换为使用 javascript 显示的字符串?

如何将一系列元组转换为熊猫数据框?

将一系列数字转换为唯一的,随机出现的字符串

如何将一系列混合的文本和数字值转换为具有连续数字值相加的单个字符串?

将一系列字符串数据点转换为列表

将一系列字符串转换为数组并替换值

如何将字符串系列转换为整数

Python 3:如何将字符串拆分为一系列字符?

如何将一系列unicode字符转换为可读文本?

如何将字符串转换为整数熊猫

如何将一系列数组转换为pandas / numpy中的单个矩阵?

如何将一系列列表转换为python中的dataframe?

如何将div中的内容转换为一系列变量?

如何将熊猫数据框中的字符串条目转换为整数?

将一系列int转换为字符串-为什么应用比astype快得多?

如何用sed替换一系列字符串中的一系列数字

如何将一系列数值数据转换为特定的分类数据?

如何将一系列键转换为具有Pandas索引的位置?

如何将一系列 PNG 图像转换为 YouTube 视频?

如何将一系列颜色转换为透明颜色?

如何将一系列字典列表转换为数据框?

R从列中的一系列行中删除字符串字符

如何用R中的字符串字符替换一系列int值

从一系列列中的字符串中删除不需要的部分

如何使用Python将一系列重复的数据行转换为多个记录的列?

将字符串添加到一系列git commits消息中

如何在 kotlin 中搜索句子中的一系列字符串