我想知道是否有一种简洁的方法可以在存在相同行的情况下“折叠”熊猫数据帧。例如:
df=
col_a col_b
a 1
b 2
b 3
c 4
d 5
d 6
d 7
我需要的是:
df_new =
col_a col_b
a 1
b [2, 3]
c 4
d [5, 6, 7]
它肯定应该包括groupby
df_new = df.groupby('col_a').apply(....)
但如何有效地实现括号中的位,我感到困惑。
s = df.groupby('col_a')['col_b'].apply(list)
df['col_c'] = df['col_a'].map(s)
print(df)
col_a col_b col_c
0 a 1 [1]
1 b 2 [2, 3]
2 b 3 [2, 3]
3 c 4 [4]
4 d 5 [5, 6, 7]
5 d 6 [5, 6, 7]
6 d 7 [5, 6, 7]
您可以将列表
应用到列
:
df.groupby('col_a')['col_b'].apply(list)
col_a
a [1]
b [2, 3]
c [4]
d [5, 6, 7]
Name: col_b, dtype: object
我有一个数据框,如下所示 如何从它创建一个单独的x和y列?
问题内容: 我在df中有几列相同的名称。需要重命名它们。无论如何,通常的重命名都会重命名,我可以将下面的blah重命名为blah1,blah4,blah5吗? 在[7]中: 问题答案: 我希望在Pandas中找到比通用Python解决方案更多的解决方案。如果Column的get_loc()函数找到带有“ True”值的重复项,则该掩码数组将返回掩码数组,“ True”值指向找到重复项的位置。然后,
问题内容: 假设我有一个数据框如下 现在,我希望a和b列不同的行。所以预期的输出是 我怎样才能做到这一点? 问题答案: 我喜欢可读性,请使用: 输出:
我已经看到了将一个列/系列分解成熊猫数据框架的多个列这一主题的一些变体,但是我一直在尝试做一些事情,但是现有的方法并没有真正成功。 给定如下数据帧: 我想将系列中的项目转换为列,以 值作为值,如下所示: 我觉得这应该是一个相对简单的问题,但我已经为此努力了几个小时,不断增加的复杂程度,但没有成功。
在库中,很多时候都有一个更改对象的选项,例如使用以下语句... 我很好奇在传递与时返回什么以及如何处理对象。 当时,是否所有操作都在修改?当立即创建一个新对象,比如,然后返回?
在下面的例子中,我有电影的数据: 我想将标题列值拆分为2个新列,即其中一个新列(“电影标题”)将采用=玩具故事作为行值,另一个新列(“年份”)将采用= 1995作为行值。 如何对整个数据帧执行此操作?