use*_*207 4 python datetime tuples pandas
我有一个看起来像这样的DataFrame
Sigma JulianDay
0 -9.05 2.451545e+06
1 -10.99 2.451545e+06
2 -8.42 2.451546e+06
3 -8.92 2.451547e+06
4 -10.79 2.451547e+06
5 -9.53 2.451548e+06
Run Code Online (Sandbox Code Playgroud)
我想将列'JulianDay'转换为格里高利日期.为此,我使用了jdcal 1.3软件包和已定义的函数jd_to_date(jd)
d = df['JulianDay'].apply(jd_to_date)
df['GregDate'] = d
Run Code Online (Sandbox Code Playgroud)
结果是:
Sigma JulianDay GregDate
0 -9.05 2.451545e+06 (2000, 1, 1)
1 -10.99 2.451545e+06 (2000, 1, 1)
2 -8.42 2.451546e+06 (2000, 1, 2)
3 -8.92 2.451547e+06 (2000, 1, 3)
4 -10.79 2.451547e+06 (2000, 1, 3)
5 -9.53 2.451548e+06 (2000, 1, 4)
Run Code Online (Sandbox Code Playgroud)
输出还告诉我,我正在处理一个对象类型:
Name: JulianDay, dtype: object
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,我想将GregDate列转换为datetime,以便我能够将GregDate设置为索引.但是dtype:对象在尝试时给了我麻烦
df['GregDate'] = pd.to_datetime(d)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
TypeError: <class 'tuple'> is not convertible to datetime
Run Code Online (Sandbox Code Playgroud)
那么,我如何首先将"元组"列转换为其他内容,以便我能够将其转换为日期时间?
谢谢
您可以创建新DataFrame的constructor,然后应用to_datetime,重要的是列名year,month以及day:
a = pd.DataFrame(df['GregDate'].values.tolist(), columns=['year','month','day'])
print (a)
year month day
0 2000 1 1
1 2000 1 1
2 2000 1 2
3 2000 1 3
4 2000 1 3
5 2000 1 4
df.GregDate = pd.to_datetime(a)
print (df)
Sigma JulianDay GregDate
0 -9.05 2451545.0 2000-01-01
1 -10.99 2451545.0 2000-01-01
2 -8.42 2451546.0 2000-01-02
3 -8.92 2451547.0 2000-01-03
4 -10.79 2451547.0 2000-01-03
5 -9.53 2451548.0 2000-01-04
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2266 次 |
| 最近记录: |