首页 > 解决方案 > 使用行数从 CSV 处理到 CSV 时出现问题

问题描述

我正在尝试将 CSV 文件处理为仅包含感兴趣列的新 CSV 文件,并删除不适合值为 -1 的行。不幸的是,我得到了意想不到的结果,因为它自动将第 0 列(旧 ID)包含到新的 CSV 文件中,而没有明确要求脚本执行它(因为它没有在 cols = [..] 中定义)。

我如何更改这些值以获取新的行数。例如,当我们删除 id=9 的第 9 行时,数据集 id 当前为 [..7,8,10...] 而不是新的 id 计数为 [..7,8,9, 10...]。我希望有人能找到解决方案。

import pandas as pd

# take only specific columns from dataset
cols = [1, 5, 6]
data = pd.read_csv('data_sample.csv', usecols=cols, header=None) data.columns = ["url", "gender", "age"]

# remove rows from dataset with undefined values of -1
data = data[data['gender'] != -1]  
data = data[data['age'] != -1]

""" Additional working solution 
indexGender = data[data['gender'] == -1].index 
indexAge = data[data['age'] == -1].index

# Delete the rows indexes from dataFrame 
data.drop(indexGender,inplace=True) 
data.drop(indexAge, inplace=True)
"""
data.to_csv('data_test.csv')

先感谢您。

标签: pythonpandascsv

解决方案


数据删除后,我通过简单的一行解决了这个问题:

data.reset_index(drop=True, inplace=True)

推荐阅读