Ano*_*rge 11 python csv dataframe pandas
我需要在加载csv时删除带有标签名称的列.我正在按如下方式阅读csv,并希望在其中添加参数来执行此操作.谢谢.pandas
pd.read_csv("sample.csv")
我知道在阅读csv后要做的事情:
df.drop('name', axis=1)
Run Code Online (Sandbox Code Playgroud)
jal*_*ezp 42
read_csv()
您可以用来选择所使用的列的唯一参数是usecols
。根据文档,usecols
接受类似列表或可调用的。由于您只知道要删除的列,因此无法使用要保留的列的列表。所以使用可调用的:
pd.read_csv("sample.csv", usecols=lambda x: x != "name")
Run Code Online (Sandbox Code Playgroud)
当然,您可以说x not in ["unwanted", "column", "names"]
您是否有不想使用的列名称列表。
Aks*_*kar 20
如果您知道先前的列名,可以通过设置usecols
参数来完成
当您知道要使用哪些列时
假设你有csv文件列['id','name','last_name']
,你想要的只是['name','last_name']
.你可以这样做:
import pandas as pd
df = pd.read_csv("sample.csv", usecols = ['name','last_name'])
Run Code Online (Sandbox Code Playgroud)
当你想要前N列
如果您不知道列名,但是您想从数据帧中获得前N列.你可以做到
import pandas as pd
df = pd.read_csv("sample.csv", usecols = [i for i in range(n)])
Run Code Online (Sandbox Code Playgroud)
编辑
当您知道要删除的列的名称时
# 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'])
Run Code Online (Sandbox Code Playgroud)
使用df= df.drop(['ID','prediction'],axis=1)
对我来说很有效。我删除了“ID”和“预测”列。确保将它们放在方括号中,例如['column1','column2']
. 不需要其他复杂的解决方案。
使用pd.read_csv
with从 CSV 中获取列标题nrows=1
,然后执行后续读取 withusecols
以提取除要省略的列之外的所有内容。
headers = [*pd.read_csv('sample.csv', nrows=1)]
df = pd.read_csv('sample.csv', usecols=[c for c in headers if c != 'name']))
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用 CSV 模块非常有效地执行相同的操作(仅读取标题),
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'}))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16712 次 |
最近记录: |