【问题标题】:Splitting a dataframe with many labels拆分具有许多标签的数据框
【发布时间】:2021-07-17 22:09:47
【问题描述】:

我正在尝试按不同的标签拆分我的数据,如下所示:

dfa = df_a[((df_a['label'] == 0) | (df_a['label'] == 15) | (df_a['label'] == 16))]

这适用于少量数字。但是,我想为许多值执行此操作。 例如:

to_train = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,17, 18, 19, 20) # this can change
dfb = [i for i in to_train if df_b['label']==i] # ValueError

这会吐出一个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我已经阅读了带有此错误的 other questions,但我已经在使用按位运算符,据我所知,它们并不能解决许多条件。

如何根据元组/列表/等中的内容拆分数据帧?

【问题讨论】:

    标签: python pandas dataframe numpy subset


    【解决方案1】:
    to_train = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,17, 18, 19, 20)
    dfb = dfa[df_a['label'].isin(to_train)]
    

    【讨论】:

    • 这行得通,只需要专门为我的代码更改为dfb = df_b[df_b['label'].isin(to_train)]
    猜你喜欢
    • 2019-01-03
    • 2021-02-26
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    相关资源
    最近更新 更多