基于DataFrame列的操作

马丁·约达诺夫(George Yordanov Georgiev)

我正在使用Python。我有以下代码:

df=pd.DataFrame({"Function":["Agent","Seller","Agent","Director","Agent","Seller","Seller","Seller"],
"Rating":[1,2,1,3,7,7,3,1]}, index["John","Mathew","Martin","Clain","McGregor","Clause","Bob","Viktor"])

结果为以下数据框:

Name       Function  Rating
      John     Agent          1
      Mathew   Seller         2
      Martin   Agent          1
      Clain    Director       3
      McGregor Agent          7
      Clause   Seller         7
      Bob      Seller         3
      Viktor   Seller         1

我想按评分对数据框进行分组,同时创建其他列,以显示每个评分中功能(代理商,卖方,总监)的数量和百分比。预期结果如下:

  Rating    Agents  Seller  Director    Agent   Seller  Director
    1          2       0       0          100%    0%       0%
    2          0       1       0          0%      100%     0%
    3          0       1       1          0%      50%      50%
    7          1       1       0          50%     50%      0%

非常感谢您的帮助。干杯。

耶斯列尔

crosstab首先使用,然后划分sum为new DataFrame100add_suffix为防止重复的列名进行多重划分,最后join一起使用:

df1 = pd.crosstab(df['Rating'], df['Function'])

df2 = df1.div(df1.sum(axis=1), 0).mul(100).add_suffix('%').round(2)

df = df1.join(df2).reset_index().rename_axis(None, axis=1)
print (df)
   Rating  Agent  Director  Seller  Agent%  Director%  Seller%
0       1      2         0       1   66.67        0.0    33.33
1       2      0         0       1    0.00        0.0   100.00
2       3      0         1       1    0.00       50.0    50.00
3       7      1         0       1   50.00        0.0    50.00

如果要使用以下字符串%

df2 = df1.div(df1.sum(axis=1), 0).mul(100).add_suffix('%').round(2).astype(str).add('%')

df = df1.join(df2).reset_index().rename_axis(None, axis=1)
print (df)

   Rating  Agent  Director  Seller  Agent% Director% Seller%
0       1      2         0       1  66.67%      0.0%  33.33%
1       2      0         0       1    0.0%      0.0%  100.0%
2       3      0         1       1    0.0%     50.0%   50.0%
3       7      1         0       1   50.0%      0.0%   50.0%

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于groupby操作的dataframe新列

来自分类Dev

DataFrame列操作

来自分类Dev

基于Column值的Pandas DataFrame操作

来自分类Dev

基于DataFrame join写列

来自分类Dev

基于多个列值的功能的DataFrame排序

来自分类Dev

基于第二列的Pandas DataFrame过滤

来自分类Dev

基于列组条件的 DataFrame 样式

来自分类Dev

基于变量设置 Pandas Dataframe 的列值

来自分类Dev

MySQL更新列基于另一列的数据操作

来自分类Dev

您将如何执行基于多列的行间操作?MATLAB

来自分类Dev

对Pandas DataFrame的不同列执行不同的操作

来自分类Dev

如何对 Dataframe 的多列执行单个操作

来自分类Dev

对单个 Dataframe 中不同列的多重操作

来自分类Dev

Python:pandas DataFrame基于其他列的新列

来自分类Dev

Spark Dataframe基于动态选择的列提取列

来自分类Dev

Pandas - 基于特定列的值在 DataFrame 中创建单独的列

来自分类Dev

基于dplyr的多个过滤器操作基于单独列中的观测值的数量和类型

来自分类Dev

基于过滤器在Pandas DataFrame中创建新列

来自分类Dev

如何访问基于列表的DataFrame中的某些列?

来自分类Dev

Pandas DataFrame基于多个条件的分组添加新的列值

来自分类Dev

Pandas DataFrame,如何基于多行计算新的列元素

来自分类Dev

基于标签/列值的python pandas dataframe转换

来自分类Dev

基于列名称条件的pandas dataframe列值总和

来自分类Dev

基于 Dataframe 中逗号分隔列中的文本分组

来自分类Dev

基于输入的数组操作

来自分类Dev

DataFrame中的新列基于另一个DataFrame中的行和列

来自分类Dev

如何基于另一个 DataFrame 中的列在 Pandas DataFrame 中创建新列?

来自分类Dev

如何基于基于行的计算向我的Pandas DataFrame追加新列?

来自分类Dev

在SparkR中,如何基于现有列的逻辑操作添加新列?

Related 相关文章

  1. 1

    基于groupby操作的dataframe新列

  2. 2

    DataFrame列操作

  3. 3

    基于Column值的Pandas DataFrame操作

  4. 4

    基于DataFrame join写列

  5. 5

    基于多个列值的功能的DataFrame排序

  6. 6

    基于第二列的Pandas DataFrame过滤

  7. 7

    基于列组条件的 DataFrame 样式

  8. 8

    基于变量设置 Pandas Dataframe 的列值

  9. 9

    MySQL更新列基于另一列的数据操作

  10. 10

    您将如何执行基于多列的行间操作?MATLAB

  11. 11

    对Pandas DataFrame的不同列执行不同的操作

  12. 12

    如何对 Dataframe 的多列执行单个操作

  13. 13

    对单个 Dataframe 中不同列的多重操作

  14. 14

    Python:pandas DataFrame基于其他列的新列

  15. 15

    Spark Dataframe基于动态选择的列提取列

  16. 16

    Pandas - 基于特定列的值在 DataFrame 中创建单独的列

  17. 17

    基于dplyr的多个过滤器操作基于单独列中的观测值的数量和类型

  18. 18

    基于过滤器在Pandas DataFrame中创建新列

  19. 19

    如何访问基于列表的DataFrame中的某些列?

  20. 20

    Pandas DataFrame基于多个条件的分组添加新的列值

  21. 21

    Pandas DataFrame,如何基于多行计算新的列元素

  22. 22

    基于标签/列值的python pandas dataframe转换

  23. 23

    基于列名称条件的pandas dataframe列值总和

  24. 24

    基于 Dataframe 中逗号分隔列中的文本分组

  25. 25

    基于输入的数组操作

  26. 26

    DataFrame中的新列基于另一个DataFrame中的行和列

  27. 27

    如何基于另一个 DataFrame 中的列在 Pandas DataFrame 中创建新列?

  28. 28

    如何基于基于行的计算向我的Pandas DataFrame追加新列?

  29. 29

    在SparkR中,如何基于现有列的逻辑操作添加新列?

热门标签

归档