我需要在使用pandas
加载csv时删除带有标签名称的列。我正在按如下方式阅读csv,并希望在其中添加参数来执行此操作。感谢。
pd.read_csv("sample.csv")
我在读完csv后知道这件事:
df.drop('name', axis=1)
答案 0 :(得分:17)
如果您之前知道列名称,则可以通过设置usecols
参数
当您知道要使用哪些列
时假设您的csv文件包含['id','name','last_name']
列,而您只需要['name','last_name']
。你可以这样做:
import pandas as pd
df = pd.read_csv("sample.csv", usecols = ['name','last_name'])
当您需要前N列
时如果您不知道列名,但想从数据帧中获得前N列。你可以通过
来做到这一点import pandas as pd
df = pd.read_csv("sample.csv", usecols = [i for i in range(n)])
修改强>
当您知道要删除的列的名称时
# Read column names from file
cols = list(pd.read_csv("sample_data.csv", nrows =1))
print(cols)
# Use list comprehension to remove the unwanted column in **usecol**
df= pd.read_csv("sample_data.csv", usecols =[i for i in cols if i != 'name'])
答案 1 :(得分:3)
使用df= df.drop(['ID','prediction'],axis=1)
为我完成了工作。我删除了“ ID”和“预测”列。确保将它们放在['column1','column2']
之类的方括号中。
还需要其他复杂的解决方案。
答案 2 :(得分:3)
可以在阅读时删除列。
columns_to_be_removed = ['a', 'b']
data = pd.read_csv(sourceFileName).drop(columns_to_be_removed, axis = 'columns')
答案 3 :(得分:2)
第1步:使用csv
模块
第2步:使用usecols
读取除要忽略的列之外的所有内容。
import csv
with open("sample.csv", 'r') as f:
header = next(csv.reader(f))
# For python 2, use
# header = csv.reader(f).next()
df = pd.read_csv('sample.csv', usecols=list(set(header) - {'name'}))