如何根据条件将数据框中的一列切成多个系列

Posted

技术标签:

【中文标题】如何根据条件将数据框中的一列切成多个系列【英文标题】:How can I slice one column in a dataframe to several series based on a condition 【发布时间】:2020-03-28 15:18:18 【问题描述】:

我有一个如下所示的数据框:

       'A' diff('A')
    0   1    NaN
    1   2     1
    2   5     3
    3   2    -3
    4   4     2
    5   6     2
    6   1    -5
    7   7     6
    8   9     2

我想要得到的是这样的:

       'B'
    0   1
    1   2
    2   5

       'C'
    0   2
    1   4
    2   6

       'D'
    0   1
    1   7
    2   9

我想将'A' 列分割成几个新列;对原始列进行切片的条件是列diff('A') 上的值为负。我在想一个迭代器应该遍历数据框,每当它在diff('A') 中遇到负值时,它应该对列进行切片并将其传递给一个系列,然后继续直到它到达列的末尾。

有人有什么想法吗?

提前致谢!

【问题讨论】:

那么你想要一个以系列为例的列表吗? 这可能很有用,但不是我的中心思想;如果满足条件,我正在寻找一种将一列分成多个系列的方法。 【参考方案1】:

我相信你的想法行之有效,但使用 pandas 内置选择器会更有效:

decreased_value = df[df['diff'] < 0]['A'].reset_index(drop=True)

【讨论】:

我没有想到这个;谢谢!我能做的是收集所有'diff' 为负数的索引,然后根据这些索引对列进行切片。

以上是关于如何根据条件将数据框中的一列切成多个系列的主要内容,如果未能解决你的问题,请参考以下文章

R语言中怎样将数据框中的一列分成多列

我在数据框中的一列(字符串+浮点数)中混合了值我如何将它们更改为对象 [重复]

如何通过 Pyspark 中同一数据框中另一列的正则表达式值过滤数据框中的一列

根据另一参考表在数据框中的一列中插入值

如何基于一个数据框中的一列和第二个数据框中的两列合并两个数据框

如何在每个组中估算熊猫数据框中的一列[重复]