【问题标题】:Python CSV or Pd Dataframe Parsing QuestionPython CSV 或 Pd 数据框解析问题
【发布时间】:2022-01-23 21:07:48
【问题描述】:

我有一个 csv 文件或 pd 数据框对象,在两个轴(列和行)上都有标签。我需要检查每个单元格的值,如果值为 True,我需要为这些值打印相应的轴标签(两个轴)。我花了一些时间在 Python 中找不到解决方案。非常感谢任何帮助。

类似这样的:

['', 'column_name_1', 'column_name_2', 'column_name_3',...] 
['Row_1_name', 'False', 'False', 'True'...] 
['Row_2_name', 'False', 'False', 'True'...]

感谢您的帮助。

【问题讨论】:

  • 您能否提供更多有关数据框的详细信息?您需要以某种方式保存标签还是仅列出它们?
  • 请看我的编辑,这是 csv 格式。

标签: python pandas dataframe csv parsing


【解决方案1】:

这是一个简单的示例,它通过对所有列应用打印函数来打印数据框中所有 True 值的索引和列:

import pandas
import io

data = '''col1,col2
label1,False,True
label2,True,False
label3,False,True'''

df = pd.read_csv(io.StringIO(data), engine='python')

def print_labels(x):
    for label, val in x.iteritems():
        if val: #insert your own validation here (or filter the column before the loop)
            print(label, x.name)

df.apply(print_labels, axis=0)

输出:

label2 col1
label1 col2
label3 col2

【讨论】:

  • 非常感谢,我会试试这个。祝你好运!
  • 为什么 label2 在 label1 之前打印?
  • @ZachYoung 因为axis=0 传递了列。使用 axis=1 进行逐行方法。
猜你喜欢
  • 1970-01-01
  • 2018-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多