如何解决如何从Python Pandas数据框以十进制小时创建数组?
我有一个名为One_Orbit的文本文件,正在尝试以十进制小时为单位创建时间数组。我使用pandas read_table打开文件,并创建了很好的经度和纬度数组。我一直在尝试制作一个时间数组。我试图将其转换为整数,以便能够使用文本文件中的小时,分钟,秒和毫秒进行数学运算。这些是文本文件中的前几行供参考:
Year Month Day Hour Minute Second Millisecond Longitude Latitude Altitude
2019 3 17 5 55 55 0 108.8730074 50.22483151 412.6226898
2019 3 17 5 56 0 0 108.9895097 50.53642185 412.7368197
2019 3 17 5 56 5 0 109.1078294 50.8478274 412.850563
2019 3 17 5 56 10 0 109.2280101 51.15904424 412.9640113
2019 3 17 5 56 15 0 109.3500969 51.47006828 413.0772319
但是,我陷入了错误“ /不支持的操作数类型:'str'和'int”,并且我不确定如何修复它以从数据框我已经有了。这是我的代码,错误是从时间开始的最后一行开始的。
import pandas as pd
df = pd.read_table('One_Orbit.txt',sep=r'\s+')
long = df['Longitude']
lat = df['Latitude']
df['Hour'].astype(int)
df['Minute'].astype(int)
df['Second'].astype(int)
df['Millisecond'].astype(int)
time = df['Hour' + 'Minute'/60 + 'Second'/3600 + 'Millisecond'/3600000]
解决方法
将行更改为
time = df['Hour'] + df['Minute']/60 + df['Second']/3600 + df['Millisecond']/3600000
输出:
0 5.931944
1 5.933333
2 5.934722
3 5.936111
4 5.937500
dtype: float64
,
问题在于,在time = df['Hour' + 'Minute'/60 + 'Second'/3600 + 'Millisecond'/3600000]
行中,python试图解析'Hour' + 'Minute'/60 + 'Second'/3600 + 'Millisecond'/3600000
,而又试图执行'Minute'/60
。 这是错误的来源
只需将最后一行更改为
time = df['Hour'] + df['Minute']/60 + df['Second']/3600 + df['Millisecond']/3600000
现在,将Minute
列中的值除以60,然后将其添加到Hour
列中的值
对我来说,这输出了以下熊猫系列
time
0 5.931944
1 5.933333
2 5.934722
3 5.936111
4 5.937500
dtype: float64
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。