繁体   English   中英

如何从csv文件中删除行?

[英]How to delete rows from a csv file?

我能够从 CSV 文件中提取我想删除的行,但我无法使drop()函数起作用。

data = pd.read_csv(next(iglob('*.csv')))
data_top = data.head()
data_top = data_top.drop(axis=0)

需要添加什么?

CSV 文件示例。 它应该删除所有内容,直到它到达 Employee 列。

creation date         Unnamed: 1       Unnamed: 2
0            NaN   type of client         NaN
1            age             NaN          NaN
2            NaN      birth date          NaN
3            NaN             NaN       days off
4       Employee          Salary       External
5            Dan            130e          yes
6        Abraham             10e           no
7       Richmond            201e      third-party

如果只是你想删除的前 5 行,那么你可以这样做:

data = pd.read_csv(next(iglob('*.csv')))
data.drop([0,1,2,3,4], axis=0, inplace=True)

对于轴,您还应该传递单个标签或列表(列名或行索引)。

当然,还有许多其他方法可以实现这一目标。 特别是如果您要删除的行的索引不仅仅是前 5 行。

编辑:如评论中指出的那样就地添加。

考虑到评论和进一步的解释,假设您知道列的名称,并且您有一个位置索引,您可以尝试以下操作:

data = pd.read_csv(next(iglob('*.csv')))
row = data[data['creation date'] == 'Employee']
n = row.index[0]
data.drop(labels=list(range(n)), inplace=True)

主要目标是找到包含值 'Employee' 的行的索引。 为此,假设没有其他行包含该词,您可以过滤数据框以匹配特定列中的相关值。
之后,您提取索引值,您将使用它来创建一个标签列表(给定位置索引),您将删除数据框,如@MAK7 在他的回答中所述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM