【问题标题】:Pandas how to get the index of row?Pandas 如何获取行的索引?
【发布时间】:2018-11-07 06:51:43
【问题描述】:

import pandas as pd
data = pd.read_csv('traj2_Binarization.csv', sep=",", index_col="NAME")

for index, row in data.iterrows():
    print(row)
- - -结果 - - - 运行3 0 罗迪 0 FSTL3 0 摩科斯 0 PDCD7 1 MYO15A 0 MYO9B 0 MAP1LC3A 0 待定1D19 0 ASIC1 0 RAP1A 0 阿拉普3 0 IQSEC2 0 HIVEP3 0

这里,我怎样才能把结果转换成下面呢?

RUNX3 = False
ROGDI = False
FSTL3 = False
MOCOS = False
PDCD7 = True
.
.
.

【问题讨论】:

    标签: python pandas indexing


    【解决方案1】:

    除了@jezrael 的回答,如果版本低于 3.6:

    for index, row in data.iterrows():
        print('%s = %s'%(index,bool(row['whatever is the column'])))
    

    或者:

    for index, row in data.iterrows():
        print('{0} = {1}'.format(index,bool(row['whatever is the column'])))
    

    或者:

    for index, row in data.iterrows():
        print(index,'=',bool(row['whatever is the column']))
    

    所有输出:

    RUNX3 = False
    ROGDI = False
    FSTL3 = False
    MOCOS = False
    PDCD7 = True
    MYO15A = False
    MYO9B = False
    MAP1LC3A = False
    TBC1D19 = False
    ASIC1 = False
    RAP1A = False
    ARAP3 = False
    IQSEC2 = False
    HIVEP3 = False
    

    【讨论】:

      【解决方案2】:

      使用f-strings 选择一项系列以通过row["NAME"] 标量并转换为bool

      #python 3.6 +
      for index, row in data.iterrows():
          print(f'{index} = {bool(row["RUNX3"])}')
      
      #python bellow 3.6
      for index, row in data.iterrows():
          print('{} = {}'.format(index, bool(row["RUNX3"])))
      
      RUNX3 = False
      ROGDI = False
      FSTL3 = False
      MOCOS = False
      PDCD7 = True
      MYO15A = False
      MYO9B = False
      MAP1LC3A = False
      TBC1D19 = False
      ASIC1 = False
      RAP1A = False
      ARAP3 = False
      IQSEC2 = False
      HIVEP3 = False
      

      for index, row in data.iterrows():
          print(index, bool(row["RUNX3"]))
      
      RUNX3 False
      ROGDI False
      FSTL3 False
      MOCOS False
      PDCD7 True
      MYO15A False
      MYO9B False
      MAP1LC3A False
      TBC1D19 False
      ASIC1 False
      RAP1A False
      ARAP3 False
      IQSEC2 False
      HIVEP3 False
      

      对于布尔值Series 使用astype

      s = data["RUNX3"].astype(bool)
      print (s)
      RUNX3       False
      ROGDI       False
      FSTL3       False
      MOCOS       False
      PDCD7        True
      MYO15A      False
      MYO9B       False
      MAP1LC3A    False
      TBC1D19     False
      ASIC1       False
      RAP1A       False
      ARAP3       False
      IQSEC2      False
      HIVEP3      False
      Name: NAME, dtype: bool
      

      【讨论】:

      • 我是新人,谢谢,但我有一个错误是 ---> KeyError: 'NAME'
      • @이춘경 - 如果将 row["NAME"] 更改为 row 会怎样? print (data.columns) 是什么?
      • 就像那个Index(['RUNX3', 'ROGDI', 'FSTL3', 'MOCOS', 'PDCD7', 'MYO15A', 'MYO9B'......])
      • @이춘경 - 我认为需要将Name 更改为列名,您可以通过print (data.columns) 进行检查
      • 我编辑并添加了 traj2_Binarization.csv 图像文件。你能检查一下是什么问题吗?
      猜你喜欢
      • 2017-10-12
      • 1970-01-01
      • 2022-11-03
      • 2013-12-10
      • 2023-03-03
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      相关资源
      最近更新 更多