Python读取含source、target、genre_ids三列的CSV文件问题
解决方案
问题根源
你的代码存在几个关键错误,导致读取后只有一列且拆分失败:
- 错误指定了分隔符
delimiter=';;',但你的edges1.csv实际是用逗号分隔字段 - 多余设置了
header=None和skiprows=1,这会忽略原文件的表头行,且代码中未定义columns变量 pd.concat语法错误:axis==1是布尔判断表达式,正确参数应为axis=1;同时rename的columns:=写法不符合Python语法规范
正确读取方式
你的csv文件是标准的逗号分隔格式,直接用pd.read_csv默认参数即可完成读取,无需额外拆分操作:
import pandas as pd # 直接读取,pandas会自动识别表头和逗号分隔符 df = pd.read_csv('edges1.csv', encoding="ISO-8859-1") print(df)
运行后会直接得到你期望的DataFrame:
source target genre_ids 0 apple green 21 1 strawberry red 23 ...
特殊场景的拆分方案(若确实需要拆分单列)
如果因特殊原因读取后仅存在一列(比如文件分隔符异常),可以用以下正确的拆分方式:
import pandas as pd # 模拟错误读取后仅存一列的情况 df = pd.read_csv('edges1.csv', encoding="ISO-8859-1", delimiter=';;', header=None, skiprows=1) # 拆分单列并指定列名 split_df = df.iloc[:, 0].str.split(',', expand=True) split_df.columns = ['source', 'target', 'genre_ids'] print(split_df)
这种方式无需使用pd.concat,直接给拆分后的DataFrame指定列名即可。
内容的提问来源于stack exchange,提问作者Elly
相关产品推荐
相关产品推荐

