根据列值在DataFrame中复制行,输出列名

沉默的冲浪者

我有一个看起来像这样的DataFrame:

data = [
    ['item 1', 'Some text', 0.0, 1, 0.25],
    ['item 2', 'Some other text', 0.5, 0.0, 0.0],
    ['item 3', 'Etc.', 0.0, 0.25, 0.0],
]

df = pd.DataFrame(data, columns=['item_name', 'description', 'class1', 'class2', 'class3'])
print(df)

  item_name      description  class1  class2  class3
0    item 1        Some text     0.0    1.00    0.25
1    item 2  Some other text     0.5    0.00    0.00
2    item 3             Etc.     0.0    0.25    0.00

我想重复的每行每一个值的0列发现时间class1class3,输出item_namedescriptionclass_name预期结果是:

  item_name      description    class
0    item 1        Some text   class2
1    item 1        Some text   class3
2    item 2  Some other text   class1
3    item 3             Etc.   class2

我设法通过使用Iterrows获得了一些朝着正确方向发展的输出,但是我只能访问类值,而不能访问其名称:

data_transf = []
for index, row in df.iterrows():
   for col in row.loc['class1':'class3']:
        if col > 0: data_transf.append(
            [row['item_name'],
             row['description'],
             col
            ])

df_new = pd.DataFrame(data_transf, columns=['item_name', 'description', 'class'])
print(df_new)

  item_name      description  class
0    item 1        Some text   1.00
1    item 1        Some text   0.25
2    item 2  Some other text   0.50
3    item 3             Etc.   0.25

问题是那col是一个浮点数,我找不到一种方法来访问其索引位置以检索类名。如何做到这一点?也许有更优雅的方法可以使用内置或共同理解来做到这一点?

通道3

替代使用 df.melt

(df.melt(id_vars=['item_name', 'description'],var_name='class').
    query("value>0").drop(columns='value'))

  item_name      description   class
1    item 2  Some other text  class1
3    item 1        Some text  class2
5    item 3             Etc.  class2
6    item 1        Some text  class3

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据列值复制行

来自分类Dev

根据列中的值复制 Spark 数据框中的行

来自分类Dev

根据R中的其他列值复制行

来自分类Dev

根据列值复制文本文件中的行

来自分类Dev

如何基于输出列中的值提取列名并获得计数

来自分类Dev

根据pandas列中的多个值从DataFrame中选择行

来自分类Dev

根据列值在DataFrame中查找下一行

来自分类Dev

根据列值删除多级索引Pandas中的DataFrame行

来自分类Dev

如何输出列中的值与标准输入中指定的值相同的 CSV 文件行

来自分类Dev

从mysql中的自定义查询输出列名称

来自分类Dev

根据匹配的列名和列值提取行值

来自分类Dev

根据列中的匹配项复制行

来自分类Dev

根据特定列中的值将行复制到单独的工作表中

来自分类Dev

在Oracle SQL中,如何根据列中的二进制值复制行?

来自分类Dev

根据DataFrame中的值用相同的列名重命名列

来自分类Dev

根据 Pandas 中的模式复制 Dataframe 中的行

来自分类Dev

MySQL查询-根据不同表中的列名获取行值

来自分类Dev

R:根据R中的行值获取列名

来自分类Dev

复制pandas Dataframe中的行和列

来自分类Dev

根据条件更改DataFrame行中的值

来自分类Dev

根据条件更改DataFrame行中的值

来自分类Dev

根据列值和映射列名在 Pandas 中拆分行

来自分类Dev

如何根据列或单元格值复制行

来自分类Dev

根据列值删除Pandas中的DataFrame行-要删除的多个值

来自分类Dev

从两个文件中查找给定列中的公共元素,并从每个文件中输出列值

来自分类Dev

Python函数中的条件输出列表值

来自分类Dev

根据熊猫中isin()的结果复制行值

来自分类Dev

根据Groupby在Pandas中的列中的值从DataFrame中选择CONSECUTIVE行

来自分类Dev

根据 Pandas 中多列中的值从 DataFrame 中选择行

Related 相关文章

  1. 1

    根据列值复制行

  2. 2

    根据列中的值复制 Spark 数据框中的行

  3. 3

    根据R中的其他列值复制行

  4. 4

    根据列值复制文本文件中的行

  5. 5

    如何基于输出列中的值提取列名并获得计数

  6. 6

    根据pandas列中的多个值从DataFrame中选择行

  7. 7

    根据列值在DataFrame中查找下一行

  8. 8

    根据列值删除多级索引Pandas中的DataFrame行

  9. 9

    如何输出列中的值与标准输入中指定的值相同的 CSV 文件行

  10. 10

    从mysql中的自定义查询输出列名称

  11. 11

    根据匹配的列名和列值提取行值

  12. 12

    根据列中的匹配项复制行

  13. 13

    根据特定列中的值将行复制到单独的工作表中

  14. 14

    在Oracle SQL中,如何根据列中的二进制值复制行?

  15. 15

    根据DataFrame中的值用相同的列名重命名列

  16. 16

    根据 Pandas 中的模式复制 Dataframe 中的行

  17. 17

    MySQL查询-根据不同表中的列名获取行值

  18. 18

    R:根据R中的行值获取列名

  19. 19

    复制pandas Dataframe中的行和列

  20. 20

    根据条件更改DataFrame行中的值

  21. 21

    根据条件更改DataFrame行中的值

  22. 22

    根据列值和映射列名在 Pandas 中拆分行

  23. 23

    如何根据列或单元格值复制行

  24. 24

    根据列值删除Pandas中的DataFrame行-要删除的多个值

  25. 25

    从两个文件中查找给定列中的公共元素,并从每个文件中输出列值

  26. 26

    Python函数中的条件输出列表值

  27. 27

    根据熊猫中isin()的结果复制行值

  28. 28

    根据Groupby在Pandas中的列中的值从DataFrame中选择CONSECUTIVE行

  29. 29

    根据 Pandas 中多列中的值从 DataFrame 中选择行

热门标签

归档