【问题标题】:Example: Drop a column name in pandas示例:在 pandas 中删除列名
【发布时间】:2021-08-18 22:09:36
【问题描述】:

我从 UCI 机器学习存储库下载了 Wisconsin 乳腺癌数据集,并稍微修改了 wdbc_data,使其第一行包含变量名称,并将其保存为 csv 文件,并以分号作为分隔符。

我可以导入这个文件并打印它的头部:

df = pd.read_csv("inputs/breastCancer.csv")
print(df.head()) 

这会在 PyCharm 中产生以下输出:

id;diagnosis;radius_mean;texture_mean;perimeter_mean;area_mean;smoothness_mean;compactness_mean;concavity_mean;concave_points_mean;symmetry_mean;fractal_dimension_mean;radius_se;texture_se;perimeter_se;area_se;smoothness_se;compactness-se;concavity_se;concave_points_se;symmetry_se;fractal_dimension_se;radius_worst;texture_worst;perimeter_worst;area_worst;smoothness_worst;compactness_worst;concavity_worst;concave_points_worst;symmetry_worst;fractal_dimension_worst
0  842302;M;1799;1038;1228;1001;1184;2776;3001;14...                                                                                                                                                                                                                                                                                                                                                                                                                                 
1  842517;M;2057;1777;1329;1326;8474;7864;869;701...                                                                                                                                                                                                                                                                                                                                                                                                                                 
2  84300903;M;1969;2125;130;1203;1096;1599;1974;1...                                                                                                                                                                                                                                                                                                                                                                                                                                 
3  84348301;M;1142;2038;7758;3861;1425;2839;2414;...                                                                                                                                                                                                                                                                                                                                                                                                                                 
4  84358402;M;2029;1434;1351;1297;1003;1328;198;1...   

这正是我所期待的。现在我想删除前两列,从 id 开始:

df = df.drop(columns=['id'], axis=1)
print(df.head())

在这里我得到以下错误:

KeyError: "['id'] not found in axis"

我知道这个问题以前曾多次被问过,但通常答案是:修改轴。好了,我的轴参数设置好了。而且我仔细检查了我的列中没有额外的空格字符,真的只有“id”。为什么找不到此列名?谁能解释一下?

【问题讨论】:

  • 猜你需要; as sep 同时阅读 csv pd.read_csv("inputs/breastCancer.csv",sep=';')
  • 天啊,非常感谢阿努拉格!我估计 ';'是默认分隔符。

标签: python pandas dataframe


【解决方案1】:

我认为当您尝试读取 CSV 文件时,将 ID 列作为您的索引,所以最好这样做:

df.to_csv(filename, index=False)

这样一来,我想就不会以ID为索引了。如果这不起作用,请尝试以下操作:

df.reset_index(drop = True).head()

这里有一个很酷的 article@pandas 索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-29
    • 2015-04-16
    • 2021-12-06
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2023-01-09
    • 2016-10-01
    相关资源
    最近更新 更多