在Dataframe中对列进行分组,并使用分组的数据创建另一个数据框

拉胡尔·沙玛(Rahul Sharma)

我有一个如下数据框:

data:

    items   status
0   jet     fail
1   car     fail
2   car     pass
3   bike    fail
4   car     fail
5   jet     fail
6   bike    pass
7   jet     fail
8   jet     fail
9   bike    pass

我想对数据进行分组,items并使用每个值的计数创建一个新的数据框。预期产量:

df:
  unique  count  pass  fail
0    jet      4     0     4
1    car      3     1     2
2   bike      3     2     1

现在,一个方法是获得独特的名单items,并在其上环找到countpass并且fail然后将这些列表合并到一个数据帧,但我怎么能做到这一点有效?

耶斯列尔

使用crosstabwithDataFrame.rename_axis作为新索引名称,然后为0 positionby添加新列DataFrame.insert,最后将index转换为by by DataFrame.reset_index

df = pd.crosstab(df['items'], df['status']).rename_axis(columns=None, index='unique')
df.insert(0, 'count', df.sum(axis=1))
df = df.reset_index()
print (df)
  unique  count  fail  pass
0   bike      3     1     2
1    car      3     2     1
2    jet      4     4     0

如果count应该是最后一列,则可以使用margin参数并删除最后一行:

df = (pd.crosstab(df['items'], df['status'], 
                  margins=True, 
                  margins_name='count')
       .rename_axis(columns=None, index='unique')
       .iloc[:-1]
       .reset_index())
print (df)
  unique  fail  pass  count
0   bike     1     2      3
1    car     2     1      3
2    jet     4     0      4

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一个数据框对数据框的列进行分组

熊猫使用列分组按另一个数据框更新数据框

根据另一个数据框的值对数据框条目进行分组

从一个分组的分组列中创建一个数据框

构建一个数据框,根据另一个数据框对项目进行分组

如何使用另一个数据框的分组输出来创建新的数据框?

遍历一个数据框中的单个列与另一个数据框中的列进行比较使用熊猫在第一个数据框中创建新列

按另一个数据框中的值分组

pandas:基于另一个数据帧中的映射对特定列进行分组和求和

根据另一个(相同的行数)数据框对列进行分组

用R中另一列的分组值进行计数来创建一个新的数据框

group_by 一个数据框通过另一个数据框的分组变量

使用R中另一个数据框的值在数据框中创建列

使用R数据框中的值对另一个数据框的列进行规范化

R:使用另一个数据框创建一个新列

聚合数据框上的列,根据另一个数据框将其分组,而不合并它们

使用一个数据框列中的键和另一个数据框列中的值创建字典

根据另一个数据集中的列值在一个数据框中创建列

查找数据框中的连续日期,并按另一个列值分组

按另一个数据框中的一列对pandas DataFrame进行排序-Pandas

如何使用dplyr创建一个平均数据为2列并由另一个变量分组的新数据框?

如何基于另一个数据框中的列值创建布尔列

从R中的另一个数据框创建多个数据框

从分组框中的另一个DataFrame的每一行创建DataFrame?

根据另一个数据框的列对数据框列进行排序

根据与另一个数据框中的值匹配的行数创建新列

根据另一个数据框中的日期条件创建新列

如何按R中的另一个数据框对数据框中的列顺序进行排序?

在数据框中添加新列以对另一个数据框中的行进行计数