当前位置: 首页 > 知识库问答 >
问题:

在数据框中创建值_计数列

拓拔嘉颖
2023-03-14

我想从我的Pandas数据帧列中创建一个唯一值的计数,然后将这些计数添加到原始数据帧中的新列。我尝试了一些不同的方法。我创建了一个熊猫系列,然后用value_counts方法计算计数。我试图将这些值合并回我的原始数据框,但我想要合并的键在索引(ix/loc)中。

Color Value
Red   100
Red   150
Blue  50

我想退货,比如:

Color Value Counts
Red   100   2
Red   150   2 
Blue  50    1

共有3个答案

刘乐童
2023-03-14

这个答案使用系列。用系列映射。值\u计数。用熊猫1.1进行了测试。

df['counts'] = df['attribute'].map(df['attribute'].value_counts())

信贷:sacuL评论

淳于煌
2023-03-14

另一个选择:

z = df['Color'].value_counts 

z1 = z.to_dict() #converts to dictionary

df['Count_Column'] = df['Color'].map(z1) 

此选项将为您提供一列,其中包含重复的计数值,对应于“颜色”列中每个值的频率。

宫子晋
2023-03-14
df['Counts'] = df.groupby(['Color'])['Value'].transform('count')

例如

In [102]: df = pd.DataFrame({'Color': 'Red Red Blue'.split(), 'Value': [100, 150, 50]})

In [103]: df
Out[103]: 
  Color  Value
0   Red    100
1   Red    150
2  Blue     50

In [104]: df['Counts'] = df.groupby(['Color'])['Value'].transform('count')

In [105]: df
Out[105]: 
  Color  Value  Counts
0   Red    100       2
1   Red    150       2
2  Blue     50       1

请注意,transform('count')忽略NAN。如果要计算N,请使用transform(len)

匿名编辑:如果您在使用transform('count')时遇到错误,可能是因为您的Pandas版本太旧。以上内容适用于pandas版本0.15或更高版本。

 类似资料:
  • 我有两个pyspark数据帧 DF1 : df2: 我想向df1添加一个列Location_Id,从df2获取匹配的Id,如下所示: 我如何才能做到这一点?

  • 我有一张800万行的大桌子。此表有15列带有数值,但这些值只能是0,并且只能是该列特有的另一个数值。我想根据特定值为这些列中的每一列创建两个新列。这些新值总是特定于列。 这是我的数据外观的虚拟示例: 这是我想要的输出 对应关系始终相同,即中1的值为,中2的值为,中3的值为。 我知道我可以用这样的东西 但我的真实数据有15列,需要大量的复制粘贴,有没有干净的方法?

  • 我有两个熊猫数据框 步骤1:根据df1中唯一的“val”在df2中创建列,如下所示: 步骤2:对于flag=1的行,AA_new将计算为var1(来自df2)*组“A”和val“AA”的df1的'cal1'值*组“A”和val“AA”的df1的'cal2'值,类似地,AB_new将计算为var1(来自df2)*组“A”和val“AB”的df1的'cal1'值*组“A”和val“AB”的df1的'c

  • 我正在尝试初始化一个没有任何行的Data.Frame。基本上,我希望为每个列指定数据类型并命名它们,但不因此创建任何行。 到目前为止,我所能做的最好的事情是: 它创建了一个data.Frame,其中有一行包含我想要的所有数据类型和列名,但也创建了一个需要删除的无用行。 有没有更好的办法做到这一点?

  • 问题内容: 我想获取一列中字符串的频率计数。一方面,这类似于将数据框折叠为仅反映列中的字符串的一组行。我能够通过循环解决此问题,但知道有更好的解决方案。 df示例: 并想出去: 我搜索了很多论坛,但找不到合适的答案。 我假设使用pivot_table方法是正确的方法,但是无法获取正确的参数来折叠没有为输出df提供明显索引的表。 我可以通过使用value_counts()遍历每列并将每个值计数系列附

  • 问题内容: 我正在尝试从DataFrame计算列中每个值的百分位数。 有没有更好的方法来编写以下代码? 我希望看到更好的性能。 问题答案: 似乎您想要: 性能: