我有这个数据:
Date Time VCD
20041001 184531 293.7
20041001 202316 305.4
20041002 175015 322.9
20041002 192822 316.6
20041003 183314 334.4
我正在使用这个代码
^{pr2}$使用clw1,使用新列“DateTime”yyyy-mm-dd删除重复数据
Date Time VCD DateTime
20041001 184531 293.7 2004-10-01
20041002 175015 322.9 2004-10-02
20041003 183314 334.4 2004-10-03
我正在尝试获取年、月数和月日(在frame1中添加相应的列,例如在frame1中添加一个新的列,表示一年中的某一天(1….365 of 20014)
frame1['doye'] = frame1['DateTime'].apply(lambda x: dt.DatetimeIndex.dayofyear('DateTime'))
但错误:AttributeError:模块“datetime”没有属性“DatetimeIndex” 使用熊猫0.20.2版本 可能我对Pandas和datetime的概念有问题,许多解决方案建议使用单个数据(值),或者对于旧的Pandas版本,如何使用dataframe处理列?在
方法1:使用apply()(不如方法2)
试着使用这个:
这将一个函数应用于DateTime列,因此lambda将返回列中的每个DateTime。因此} 对象,该对象的成员是
s
是一个DateTime对象。我使用timetuple()
函数来获得一个^{tm_yday
,它给你一年中的哪一天。在这是我的测试代码:
将numpy作为np导入
^{pr2}$结果是:
方法2:使用.dt(更好:)
啊,正在读
.dt
存取器here。。。Pandas系列的.dt
访问器将该系列的每个成员视为日期时间,因此当您将其应用于整个系列时,所有内容都必须是datetime。当您将其应用于序列中的列时,apply()
函数获取的是datetime对象,而不是series,因此您必须使用datetime方法。在所以我们不要使用
apply()
。选择一列datetime将得到一个序列,然后可以使用.dt
,因此示例变为:下面的代码应该完成您期望的所有步骤:
^{pr2}$clw1
的输出是:有一个办法。
%j
格式代码提供了一年中的哪一天。在相关问题 更多 >
编程相关推荐