gpt4 book ai didi

python - 如何让 pandas 停止跳过 TSV 文件中的第一个空白列?

转载 作者:行者123 更新时间:2023-12-01 08:01:24 24 4
gpt4 key购买 nike

使用 pandas.read_csv() 导入制表符分隔的数据文件 (TSV) 时,我得到一个具有正确列名(以及正确的列数)的数据帧,但它似乎已将每列的数据向左移动 1。这也会导致最后、最右边的列全部为 NaN 值。

我怀疑这是因为 TSV 文件中的第一列完全空白(我相信文件的创建者在 python 中使用 None 作为该列的值,然后使用 df.to_csv())。如何导入数据,使我的数据框的第一列全部为 NaN,这就是每当列中有空白值时我想要的结果?

我的用例涉及很多这些 TSV 文件,其中一些文件具有空白的 charge_code 列,但有些文件中该列将包含有意义的数据。因此,我需要一个动态解决方案,可以检查列的空白性质,然后自动将其全部设置为 NaN

数据文件示例:

    6   MISOPROSTOL, ORAL, 200 MCG  kaiser-foundation-southern-region   106191300_CDM_2018.xlsx standard
13 DIALYSIS/STRESS VITAMIN SUPL ORAL 100 CAPSULES kaiser-foundation-southern-region 106191300_CDM_2018.xlsx standard
30 PRENATAL VITAMINS 30-DAY SUPPLY kaiser-foundation-southern-region 106191300_CDM_2018.xlsx standard
50 COMP CONT LENS EVAL kaiser-foundation-southern-region 106191300_CDM_2018.xlsx standard

我尝试用于导入的代码:

pd.read_csv('problem_lines.tsv', delimiter = r'\t',
header = None,
names = ['charge_code', 'price', 'description', 'hospital_id',
'filename', 'charge_type'],
index_col = False)

代码的输出:

charge_code price   description hospital_id filename    charge_type
0 6.0 MISOPROSTOL, ORAL, 200 MCG kaiser-foundation-southern-region 106191300_CDM_2018.xlsx standard NaN
1 13.0 DIALYSIS/STRESS VITAMIN SUPL ORAL 100 CAPSULES kaiser-foundation-southern-region 106191300_CDM_2018.xlsx standard NaN
2 30.0 PRENATAL VITAMINS 30-DAY SUPPLY kaiser-foundation-southern-region 106191300_CDM_2018.xlsx standard NaN
3 50.0 COMP CONT LENS EVAL kaiser-foundation-southern-region 106191300_CDM_2018.xlsx standard NaN

最佳答案

如果您希望 charge_code 列为 NaN,请在阅读后进行设置,如下所示:

import numpy as np

df = pd.read_csv('problem_lines.tsv', delimiter = r'\t',
header = None,
names = ['price', 'description', 'hospital_id',
'filename', 'charge_type'],
index_col = False)

df['charge_code'] = np.nan

关于python - 如何让 pandas 停止跳过 TSV 文件中的第一个空白列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55713902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com