A.Lyapunov 发表于 2020-8-10 16:14:22

python

import pandas as pd
csv_data = pd.read_csv('data/all_face_feature.csv',encoding='unicode_escape')
csv_data1 = csv_data.drop()
csv_data1.to_csv('data/all_face_feature_new.csv')
读取.csv文件,然后把.csv文件中的第三行的数据删除,再保存。运行下面的程序,报错:KeyError(f"{labels} not found in axis")   KeyError: ' not found in axis'
请问应该怎么办

sunrise085 发表于 2020-8-10 16:45:25

本帖最后由 sunrise085 于 2020-8-10 16:49 编辑

我这里没有报错啊
而且也正常的删除了一行

A.Lyapunov 发表于 2020-8-10 16:53:48

sunrise085 发表于 2020-8-10 16:45
我这里没有报错啊
而且也正常的删除了一行

请问你的程序跟我上面这个程序一模一样吗

sunrise085 发表于 2020-8-10 16:57:27

本帖最后由 sunrise085 于 2020-8-10 16:58 编辑

A.Lyapunov 发表于 2020-8-10 16:53
请问你的程序跟我上面这个程序一模一样吗

是的,一模一样。
刚刚尝试了一下,打印输出读取到的内容。修改csv文件。只保留很少的数据,就出错了

csv文件内容是:
# Channel 1        Unnamed: 1        Unnamed: 2        # Channel 1.1        Unnamed: 4        Unnamed: 5
# Trace 1                        # Trace 1               
Frequency       Formatted Data       Formatted Data        Frequency       Formatted Data       Formatted Data
3.00E+05        1.11E+02        -2.77E+01        3.00E+05        1.11E+02        -2.77E+01


你的错误是因为你的文件没有第三行导致的。

A.Lyapunov 发表于 2020-8-10 16:59:49

sunrise085 发表于 2020-8-10 16:57
是的,一模一样。
刚刚尝试了一下,打印输出读取到的内容。修改csv文件。只保留很少的数据,就出错了
...

可是我的文件中有第三行,

sunrise085 发表于 2020-8-10 17:03:12

A.Lyapunov 发表于 2020-8-10 16:59
可是我的文件中有第三行,

你在第二行代码之后加一句: print(csv_data)
查看一下读取的内容,看看有没有序号为3的数据。
读取文件,文件的第一行并不是序号为0 的行,第二行才是序号为0的行,
你仔细看看我刚刚发的图片和我的文件内容

A.Lyapunov 发表于 2020-8-10 17:25:31

sunrise085 发表于 2020-8-10 17:03
你在第二行代码之后加一句: print(csv_data)
查看一下读取的内容,看看有没有序号为3的数据。
读取文 ...

有序号为3的,没有报错了。但是保存的数据比原来的.csv文件多了一列,在开头。这一列分别是index、0、1、2,如果想要保存的时候不想比原来的.csv文件多出这一列,应该怎么办?

sunrise085 发表于 2020-8-10 17:44:48

A.Lyapunov 发表于 2020-8-10 17:25
有序号为3的,没有报错了。但是保存的数据比原来的.csv文件多了一列,在开头。这一列分别是index、0、1、 ...

读取的时候,添加一个参数就会取消那个序列号,但是你的程序不能那样写,因为你需要用序列号
你可以写文件的时候取消序列号
read_csv(path,index_col=0)#index_col是设置是否需要序列号的。你的程序需要序列号,所以不要添加这个参数
to_csv(path,index=False)#index是设置写文件的时候是否写序列号,这里加上这个参数,设置为False即可

A.Lyapunov 发表于 2020-8-10 18:49:04

好的,谢谢!我的文件里有中文,读取以后变成了乱码,请问有什么解决办法吗

Twilight6 发表于 2020-8-10 19:49:19

A.Lyapunov 发表于 2020-8-10 18:49
好的,谢谢!我的文件里有中文,读取以后变成了乱码,请问有什么解决办法吗

在 pd.read_csv 把参数 encoding='unicode_escape' 改成 encoding='utf-8' 或者 encoding='gbk' 试试看

A.Lyapunov 发表于 2020-8-10 20:00:21

谢谢你!

A.Lyapunov 发表于 2020-8-10 21:14:02

sunrise085 发表于 2020-8-10 17:44
读取的时候,添加一个参数就会取消那个序列号,但是你的程序不能那样写,因为你需要用序列号
你可以写 ...

这些语法知识不太清楚,网上的又不一定适用或全。请问你是怎么样学习的,有什么书推荐吗

A.Lyapunov 发表于 2020-8-10 21:25:22

Twilight6 发表于 2020-8-10 19:49
在 pd.read_csv 把参数 encoding='unicode_escape' 改成 encoding='utf-8' 或者 encoding='gbk' 试试看

你好,这样中文还是乱码。在网上找到的方法:在pd.to_csv(path,encoding='utf_8_sig'),中文正常显示了
页: [1]
查看完整版本: python