Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
上个月关闭。
也许对你们大多数人来说这将是一个愚蠢的问题,但我已经在google中寻找了一个很好的答案,但我仍然不太了解此函数(operator.attrgetter)的作用。
下一行代码是我认识的使用此功能的一个示例:
其中df ['diff']是一列,其中包含两个日期之间的差,输出仅是数字的数字序列。
在这一点上,我不在乎您是否认为这个问题很糟糕,只要您能帮助我理解它,谢谢...
结果是:
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
上个月关闭。
也许对你们大多数人来说这将是一个愚蠢的问题,但我已经在google中寻找了一个很好的答案,但我仍然不太了解此函数(operator.attrgetter)的作用。
下一行代码是我认识的使用此功能的一个示例:
df['diff'] = df['diff'].apply(attrgetter('n'))
其中df ['diff']是一列,其中包含两个日期之间的差,输出仅是数字的数字序列。
在这一点上,我不在乎您是否认为这个问题很糟糕,只要您能帮助我理解它,谢谢...
最佳答案
我认为一个例子会有所帮助。假设我们有一个像这样的数据框:
df = pd.DataFrame({'data1':['2019', '2020'], 'data2':['2018', '2018']})
df.data1 = pd.to_datetime(df.data1)
df.data2 = pd.to_datetime(df.data2)
df['diff'] = df.data1-df.data2
>>> df
data1 data2 diff
0 2019-01-01 2018-01-01 365 days
1 2020-01-01 2018-01-01 730 days
diff
列的每个元素都是一个Timedelta
对象:>>> type(df['diff'].iloc[0])
pandas._libs.tslibs.timedeltas.Timedelta
Timedelta
对象具有属性days
。假设我们希望在数据框中创建一个新列,其中包含该数据框每一行的属性值。我们可以使用attrgetter
实现:from operator import attrgetter
df['days_diff'] = df['diff'].apply(attrgetter('days'))
结果是:
data1 data2 diff days_diff
0 2019-01-01 2018-01-01 365 days 365
1 2020-01-01 2018-01-01 730 days 730
08-07 03:08