【问题标题】:pandas df select unique values in a column and create separate df's for each unique value [duplicate]pandas df在列中选择唯一值并为每个唯一值创建单独的df [重复]
【发布时间】:2019-04-13 08:28:45
【问题描述】:

我有一个包含 12 个月数据的数据框(我有一个日期列)。我想根据日期列中的唯一值将该数据框拆分为 12 个数据框。每个月数据框都会再更新 1 个月,所以需要最近 12 个月

【问题讨论】:

标签: python pandas


【解决方案1】:

当您在 Pandas 中对 DataFrame 执行操作时,它不会更改原始 DataFrame,而是传递一个新的 DataFrame,并将更改应用为返回值。因此,如果我们这样做,例如:

df = pd.DataFrame.from_csv('data.csv')
new_df = df[df.name == 'John']

dfnew_df 是完全不同的 DataFrame,new_dfdf 的子集。因此,要实现您想要的,您只需按月过滤原始 DataFrame。值得注意的是,如果你的日期列是 DateTime 类型,你可以使用 .dt 来执行特定于日期时间的操作,例如:

df[df.dt.month == 1]

考虑到这一点,您可以执行类似的操作(假设您的原始 DataFrame 称为 df):

monthly_array = list()
for i in range(1,13):
    monthly_array[i-1] = df[df.date.dt.month == i]

【讨论】:

    猜你喜欢
    • 2014-11-30
    • 2021-11-21
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多