python - 在 Pandas 中分配组的第一行

标签 python pandas

我想分配组的第一行。

输入:

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

最佳答案

使用groupby.cumcounteq 。如果累计计数等于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

关于python - 在 Pandas 中分配组的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63230961/

相关文章:

python - 无法在代码中访问 UserProperty 的成员

python - 合并两个几乎相同的字符串

python - Tensorflow 数据集 API - 将窗口应用于多个序列

python - Keras ANN 的 Pandas 数据框形状不正确

python - 如何使用gzip模块打开csv文件

python - arduino yun uhttpd flask 设置

python - Pandas 滚动 : How to roll from left to right or from up to down?

python - 如何根据Python中输入列表的索引附加多处理池的结果?

python - 绘制时间序列?

python - 如何跨不同类型的 Seaborne/Matplotlib 子图同步颜色