我想分配一个组的第一行。
输入:
df = pd.DataFrame({'col1': ['A', 'A', 'B', 'B'],
'col2': [1, 1, 2, 3],
'col3': ['value1', 'value2', 'value3', 'value4']})
我尝试了:
df.groupby(['col1', 'col2']).first()
但是我只得到第一排。
我想要这样的输出:
col1 col2 col3 first_row A 1 value1 True A 1 value2 False B 2 value3 True B 3 Value4 True
没有分组的替代方案:
df['first_row'] = df.col1.shift().ne(df.col1) | df.col2.shift().ne(df.col2)
结果:
col1 col2 col3 first_row
0 A 1 value1 True
1 A 1 value2 False
2 B 2 value3 True
3 B 3 value4 True
使用groupby.cumcount
和eq
。如果累积计数等于0,则它是第一行:
df['first_row'] = df.groupby(['col1', 'col2']).cumcount().eq(0)
[出去]
col1 col2 col3 first_row
0 A 1 value1 True
1 A 1 value2 False
2 B 2 value3 True
3 B 3 value4 True
问题内容: 我试图在熊猫中绘制一些数据,并且内置的绘图功能可以方便地在每列中绘制一行。我要做的是根据我进行的分类为每行手动分配颜色。 以下作品: 但是,当我的索引是整数时,它将不再起作用并抛出为KeyError: 我的理解是,当使用整数索引时,它必须以某种方式从0开始。这是我的猜测,因为以下内容同样适用: 我的问题是: 这是怎么回事 假设我有一个不是从0开始或不是由连续数字组成的整数索引,那么我如
我正在使用此数据框: 我想通过名称和水果将其聚合,得到每个名称的水果总数。 我试着按名字和水果分组,但如何得到水果的总数呢。
我有一个数据框,上面写着有一列 <代码> 我想对这些年龄段进行分组,并创建一个类似这样的新专栏 如何使用Pandas库实现这一点。 我试过这样做 但这样做我得到了这个警告 /Users/Anand/miniconda3/envs/learn/lib/python3.7/site packages/ipykernel_launcher.py:3:SettingWithCopyWarning:试图在数
问题内容: 如问题所述,我有一个很大的数据框,但看起来像: 我试图摆脱文本数据,并将其替换为预定义的数值等效项。例如,在这种情况下,我想分别用或替换的或值。有没有一种方法无需我手动输入和更改值? 问题答案: / 上面的一个有趣的通用版本: 一切都不是。
问题内容: 有没有办法在熊猫中舍入单个列而不影响数据框的其余部分? df.value1.apply(np.round)给出 使数据看起来像这样的正确方法是什么: 问题答案: 你很亲密 您将此回合应用于给出的一系列值。因此,返回类型为Series。您需要将该系列分配回该数据框(或具有相同索引的另一个数据框)。 同样,有一种方法基本上是的简写。
问题内容: 我曾经在之后进行并行化,例如: 但是,有没有人想出如何并行化返回DataFrame的函数?如预期,此代码对于失败。 问题答案: 尽管确实应该将其内置到熊猫中,但这似乎可行