Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用正斜杠将整数拆分成一系列_Python_Pandas_Dataframe_Series - Fatal编程技术网

Python 用正斜杠将整数拆分成一系列

Python 用正斜杠将整数拆分成一系列,python,pandas,dataframe,series,Python,Pandas,Dataframe,Series,我试图使用python的rsplit函数,通过正斜杠将整数拆分成一系列,但它不起作用 原始数据 预期数据 我想用“/”分开 date '1' '30' '2015' '1' '30' '2015' '1' '30' '2015' '1' '30' '2015' '1' '30' '2015' '1' '30' '2015' '1' '30' '2015' 这样做的目的是在单独的栏中记录年份。我以前尝试过使用下面的代码 date = df['date'] split = date.r

我试图使用python的
rsplit
函数,通过正斜杠将整数拆分成一系列,但它不起作用

原始数据 预期数据 我想用“/”分开

    date

'1' '30' '2015'
'1' '30' '2015'
'1' '30' '2015'
'1' '30' '2015'
'1' '30' '2015'
'1' '30' '2015'
'1' '30' '2015'
这样做的目的是在单独的栏中记录年份。我以前尝试过使用下面的代码

date =  df['date']
split = date.rsplit("/")
OutputData['Year']=split[2]
split[2]->是日期系列中的年份-用于在单独的列中获取年份

非常感谢

这是我每次“这是一系列对象”时都会遇到的错误
AttributeError:“Series”对象没有属性“split”

您可以使用
str
访问器在序列上使用字符串方法:

df["date"].str.rsplit("/")
或者将它们放在不同的列中:

df["date"].str.rsplit("/", expand = True)
对于系列,处理日期时间数据可能更好:

import pandas as pd
pd.to_datetime(df["date"]).dt.year
Out[10]: 
0    2015
1    2015
2    2015
3    2015
4    2015
5    2015
6    2015
7    2015
8    2015
9    2015
Name: date, dtype: int64

您可以使用
str
访问器在序列上使用字符串方法:

df["date"].str.rsplit("/")
或者将它们放在不同的列中:

df["date"].str.rsplit("/", expand = True)
对于系列,处理日期时间数据可能更好:

import pandas as pd
pd.to_datetime(df["date"]).dt.year
Out[10]: 
0    2015
1    2015
2    2015
3    2015
4    2015
5    2015
6    2015
7    2015
8    2015
9    2015
Name: date, dtype: int64

在我看来,使用将字符串转换为
datetime
更有用,这样您就可以对其执行算术运算,如果您想要年份或任何其他日期/时间组件,您可以使用矢量化访问器:

In [23]:
df['date'] = pd.to_datetime(df['date'])
df

Out[23]:
        date
0 2015-01-30
1 2015-01-30
2 2015-01-30
3 2015-01-30
4 2015-01-30
5 2015-01-30
6 2015-01-30
7 2015-01-30
8 2015-01-30
9 2015-01-30

In [24]:
df['year'] = df['date'].dt.year
df

Out[24]:
        date  year
0 2015-01-30  2015
1 2015-01-30  2015
2 2015-01-30  2015
3 2015-01-30  2015
4 2015-01-30  2015
5 2015-01-30  2015
6 2015-01-30  2015
7 2015-01-30  2015
8 2015-01-30  2015
9 2015-01-30  2015

在我看来,使用将字符串转换为
datetime
更有用,这样您就可以对其执行算术运算,如果您想要年份或任何其他日期/时间组件,您可以使用矢量化访问器:

In [23]:
df['date'] = pd.to_datetime(df['date'])
df

Out[23]:
        date
0 2015-01-30
1 2015-01-30
2 2015-01-30
3 2015-01-30
4 2015-01-30
5 2015-01-30
6 2015-01-30
7 2015-01-30
8 2015-01-30
9 2015-01-30

In [24]:
df['year'] = df['date'].dt.year
df

Out[24]:
        date  year
0 2015-01-30  2015
1 2015-01-30  2015
2 2015-01-30  2015
3 2015-01-30  2015
4 2015-01-30  2015
5 2015-01-30  2015
6 2015-01-30  2015
7 2015-01-30  2015
8 2015-01-30  2015
9 2015-01-30  2015

还是替换?例如,date.replace(“/”,“”)是字典吗?split_data=data.split(“/”)。。。日=分割数据[0],月=分割数据[1],年=分割数据[2]?这个问题缺少一些关键信息。请尝试使用来帮助您写一个更清楚的问题。@Paul Rooney rsplit和split都给出了相同的错误,@aBiologist-df是我的数据帧,还是替换?例如,date.replace(“/”,“”)是字典吗?split_data=data.split(“/”)。。。日=分割数据[0],月=分割数据[1],年=分割数据[2]?这个问题缺少一些关键信息。请尝试使用来帮助您写一个更清楚的问题。@Paul Rooney rsplit和split都给出了相同的错误,@aBiologist-df是我的数据帧,