【发布时间】:2021-01-28 09:53:29
【问题描述】:
我有一个 pandas 数据框,每行都有日期,我想按第二列分组并对日期进行排序,然后将字母 A 分配给第一个日期,将 B 分配给第二个日期等。请参见下面我被卡住的示例。
import pandas as pd
rng = pd.date_range('2015-02-24', periods=5, freq='T')
names = ['MAK', 'MAK', 'OKA', 'OKA', 'MAK']
df = pd.DataFrame({ 'Date': rng, 'Groups': names })
df
Date Groups
0 2015-02-24 00:00:00 MAK
1 2015-02-24 00:01:00 MAK
2 2015-02-24 00:02:00 OKA
3 2015-02-24 00:03:00 OKA
4 2015-02-24 00:04:00 MAK
我想要的结果是:
Date Groups Letter
0 2015-02-24 00:00:00 MAK A
1 2015-02-24 00:01:00 MAK B
2 2015-02-24 00:02:00 OKA A
3 2015-02-24 00:03:00 OKA B
4 2015-02-24 00:04:00 MAK C
我想我可以这样定义一个函数:
def assignLetters(row):
return sort == 'A'
df['Letter'] = df.groupby('Groups').Date.apply(assignLetters)
任何帮助将不胜感激!也许指引我正确的方向,不知道如何按时间顺序分配字母?
【问题讨论】:
-
您好,是否可以让 d 的列表更长?如果有超过 26 个日期。它开始枚举 AA,然后是 AB、AC 等?
标签: python pandas dataframe date