鱼C论坛

 找回密码
 立即注册
查看: 1253|回复: 12

[已解决]python

[复制链接]
发表于 2020-8-10 16:14:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

最佳答案
2020-8-10 17:03:12
A.Lyapunov 发表于 2020-8-10 16:59
可是我的文件中有第三行,

你在第二行代码之后加一句: print(csv_data)
查看一下读取的内容,看看有没有序号为3的数据。
读取文件,文件的第一行并不是序号为0 的行,第二行才是序号为0的行,
你仔细看看我刚刚发的图片和我的文件内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-10 16:45:25 | 显示全部楼层
本帖最后由 sunrise085 于 2020-8-10 16:49 编辑

我这里没有报错啊
而且也正常的删除了一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-10 16:53:48 | 显示全部楼层
sunrise085 发表于 2020-8-10 16:45
我这里没有报错啊
而且也正常的删除了一行

请问你的程序跟我上面这个程序一模一样吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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

搜狗截图20200810165626.png
你的错误是因为你的文件没有第三行导致的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可是我的文件中有第三行,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-10 17:03:12 | 显示全部楼层    本楼为最佳答案   
A.Lyapunov 发表于 2020-8-10 16:59
可是我的文件中有第三行,

你在第二行代码之后加一句: print(csv_data)
查看一下读取的内容,看看有没有序号为3的数据。
读取文件,文件的第一行并不是序号为0 的行,第二行才是序号为0的行,
你仔细看看我刚刚发的图片和我的文件内容
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

有序号为3的,没有报错了。但是保存的数据比原来的.csv文件多了一列,在开头。这一列分别是index、0、1、2,如果想要保存的时候不想比原来的.csv文件多出这一列,应该怎么办?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-10 18:49:04 From FishC Mobile | 显示全部楼层
好的,谢谢!我的文件里有中文,读取以后变成了乱码,请问有什么解决办法吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

在 pd.read_csv 把参数 encoding='unicode_escape' 改成 encoding='utf-8' 或者 encoding='gbk' 试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-10 20:00:21 From FishC Mobile | 显示全部楼层
谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这些语法知识不太清楚,网上的又不一定适用或全。请问你是怎么样学习的,有什么书推荐吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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'),中文正常显示了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 11:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表