python - 我无法尝试使用包含列名称的列表从数据框中选择列
问题描述
我正在尝试按列名称选择特定列到 Dataframe。我使用一个列表来指定我要选择的列的名称。但它不断返回此错误。
KeyError: "None of [Index(['(',')', ' (',')', ' (',')',\n ' (r,')', ' (',')', ' ')',\n ' (',')', ' ('')', ' ('')',\n ' ('')', ' (',')',\n ' (',')', ' (' ')',\n ' (',')', ' ('')',\n ' ('')', ' (',')'],\n dtype='object')] are in the [columns]"
我使用下面的代码来执行此操作:
def SelectColumn(df,liste):
return pd.concat([df[e] for e in liste], axis=1)
DataFrame 的形状有点乱,但重要的是列的名称。
因此,一旦我导入 csv 文件,我 将以 #Leftover开头的 ligne 转换为我的数据框的列名,同时,我删除了当前标题,这是进行此操作的函数:
def CreateHeader(df,name_of_line):
#Select the wanted row for header in Dataframe
new_header = df.loc[df['#================================================================================'] == name_of_line]
new_header_transposée = new_header.T
df = df[1:]
df.columns = new_header_transposée
return df
有人可以帮忙解决吗?
解决方案
看着错误
KeyError: "None of [Index(['('#AFDX_OUTPUT_VL,')', ' ('Network Id,')', ' ('Connector name,')',\n ' ('VL Identifier,')', ' ('VL name,')', ' ('Network Select,')',\n ' ('BAG,')', ' ('Max frame size,')', ' ('Number of sub VL,')',\n ' ('Sub VL Identifier,')', ' ('port characteristic,')',\n ' ('IP frag allowed,')', ' ('Src IP address,')',\n ' ('Dest IP address,')', ' ('Src UDP address,')',\n ' ('Dest UDP address,')', ' ('Buffer Size,')'],\n dtype='object')] are in the [columns]"
您的列名中有空格,请通过以下方式删除它们
df.columns = df.columns.str.replace(' ', '')
# or
df.columns = df.columns.str.strip()
另外,您的功能中有错字
def SelectColumn(df,liste):
print(liste)
df = df.loc[:,list]
^
|
should be liste
return df
推荐阅读
- php - 如何在管理员 Wordpress 中下载文件
- aframe - AframeJS 如何在文本实体中使用其他字体,如 Helvetica 粗体
- python-3.x - 查找 Pandas 对象的方法和属性
- fortran - ABAQUS 子程序在配置为程序而不是子程序时运行
- excel - 没有数组公式的倒数第二个非空白单元格(Excel Online)
- sql - PostgresSQL - 日期工作很奇怪
- python - 我无法安装 tar.gz 包
- php - php mysql multiquery不返回结果
- tableau-api - 如何保存预测值以在 Tableau 中的计算中使用?
- c# - 如何在接口中使用接口