gpt4 book ai didi

python - 根据日期排列 Dataframe 中的数据

转载 作者:行者123 更新时间:2023-12-01 02:46:19 26 4
gpt4 key购买 nike

给定表单的数据:

ID  Date     Highlight
1 201501 B
2 201506 C
1 201507 A
3 201508 D
2 201509 A
3 201510 B
3 201501 B

所需输出(在数据框中)——针对每个 ID,我需要一个按发生时间顺序排列的序列:

ID     Highlight Sequence
1 B, A
2 C, A
3 D, B, B

本质上,我打算训练一个可变长度输入 - RNN 来根据每个 ID 预测序列中的下一个字符。

最佳答案

我认为你需要to_datetimesort_values第一:

df['Date'] = pd.to_datetime(df['Date'], format='%Y%m')
df = df.sort_values(['ID','Date'])
print (df)
ID Date Highlight
0 1 2015-01-01 B
2 1 2015-07-01 A
1 2 2015-06-01 C
4 2 2015-09-01 A
6 3 2015-01-01 B
3 3 2015-08-01 D
5 3 2015-10-01 B

然后groupby使用参数 sort,因为 apply 不需要默认排序:

...列表列的list

df1 = df.groupby('ID', sort=False)['Highlight'] \
.apply(list) \
.reset_index(name='Highlight Sequence') \


print (df1)
ID Highlight Sequence
0 1 [B, A]
2 2 [C, A]
1 3 [B, D, B]

...加入 字符串列:

df2 =  df.groupby('ID', sort=False)['Highlight']
.apply(','.join)
.reset_index(name='Highlight Sequence')

print (df2)

ID Highlight Sequence
0 1 B,A
1 2 C,A
2 3 B,D,B

但是如果需要按行位置排序(date 列默认排序或不重要):

df2 = df.groupby('ID', sort=False)['Highlight'] \
.apply(list) \
.reset_index(name='Highlight Sequence')

print (df2)
ID Highlight Sequence
0 1 [B, A]
1 2 [C, A]
2 3 [D, B, B]

关于python - 根据日期排列 Dataframe 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45232767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com