首页 > 解决方案 > Python数据框为另一列中的每个值添加日期

问题描述

我在 Python 中有以下数据框:

   Date        Key
0  2020-01-01  AB
1  2020-01-05  AC
2  2020-01-09  AB
3  2020-01-10  AD

每个日期键组合都是唯一的。这意味着,例如,Dataframe 中没有其他 (2020-01-01, AB) 对。此外,数据框按日期排序。

我想要的是填写每个键的其余日期,以便想要的结果应该是:

   Date        Key
0  2020-01-01  AB
1  2020-01-02  AB
...
30 2020-01-31  AB
31 2020-01-01  AC
...
61 2020-01-31  AC
62 2020-01-01  AD
...
92 2020-01-31  AD

或像这样:

    Date        Key
0   2020-01-01  AB
1   2020-01-01  AC
2   2020-01-01  AD
3   2020-01-02  AB
4   2020-01-02  AC
5   2020-01-02  AD
...
90  2020-01-31  AB
91  2020-01-31  AC
92  2020-01-31  AD

请注意,我还有其他月份和年份,以及更多钥匙。

标签: pythonpandasdataframedatedatetime

解决方案


尝试这个

N = df['key'].eq('AB').sum()
df = df.sort_values('key').groupby('key').head(N)

如果您可以像这样提供您的数据框,它将很容易理解和处理

df = pd.DataFrame({"X1": ["A", "B", "A", "B", "B","C","C","C"],"X2": ['FOO','BAR' ,'FOO1', 'BAR1', 'FOO2','BAR2','FOO3','BAR3']})

推荐阅读