给出以下数据框架,它来自导入凌乱的Excel电子表格:
import pandas as pd
df=pd.DataFrame({'A':['a','b','c'],
'dates':['2015-08-31 00:00:00','2015-08-24 00:00:00','8/3/2015, 1/4/16']})
try:
df['dates']=df['dates'].astype('datetime64[ns]')
except:
pass
df
A dates
0 a 2015-08-31 00:00:00
1 b 2015-08-24 00:00:00
2 c 8/3/2015, 1/4/16
我想分割存在多个日期的地方,并且只选择第一个这样的日期:
A dates
0 a 2015-08-31 00:00:00
1 b 2015-08-24 00:00:00
2 c 8/3/2015
我希望它会将结果转换为相同的格式:
A dates
0 a 2015-08-31 00:00:00
1 b 2015-08-24 00:00:00
2 c 2015-08-03 00:00:00
提前致谢!
答案 0 :(得分:1)
您可以将class Score():
level = 0
score = 0
time = 0
def __init__(self,level,score,time):
Score.level = level
score.score = score
Score.time = time
class Player():
def __init__(self, name, scores):
self.name = name
self.scores = scores
def maxLevel():
##Do stuff to calculate the max
John = Player("John", [Score(100,1456,50), Score(210,1490,100)])
John.maxLevel()
与to_datetime()
结合使用:
.str.split()
或
In [215]: pd.to_datetime(df.dates.str.split(',\s*').str[0])
Out[215]:
0 2015-08-31
1 2015-08-24
2 2015-08-03
Name: dates, dtype: datetime64[ns]
dtypes:
In [216]: df['dates'] = pd.to_datetime(df.dates.str.split(',\s*').str[0])
In [217]: df
Out[217]:
A dates
0 a 2015-08-31
1 b 2015-08-24
2 c 2015-08-03