![](/img/trans.png)
[英]How to read a CSV with Pandas and only read it into 1 column without a Sep or Delimiter
[英]pandas read .csv file without suitable delimiter. (only seperate first column vs “rest”)
我尝试将.csv文件导入到python pandas中,如下所示:
dataframe = pd.read_csv(inputfile, sep=delimiter, header=None)
然而,(巨大)的每一行inputfile
包含的整数,其次是一些字符串。 像这样:
1234 this string % might; contain 눈 anything
结果应该是两列dataframe
,其位置1表示Integer
,位置2的其余部分。
由于字符串中可以出现任何字符,因此我无法使用单个字符作为分隔符。 尝试使用不太可能的长字符串序列(例如“ khlKiwVlZdsb9oVKq5yG”)作为分隔符,可能会让人感到肮脏,但其次可能不是100%可靠,其次会导致以下“错误/不便”:
ParserWarning:回退到“ python”引擎,因为“ c”引擎不支持正则表达式分隔符(分隔符> 1个字符且与“ \\ s +”不同的分隔符被解释为正则表达式); 您可以通过指定engine ='python'来避免此警告。
所以我的问题是:有没有更好的方法来解决我的问题? 也许有一些选择让大熊猫在遇到第一个定界符后忽略其他定界符?
感谢您的任何建议!
基本上,您的.csv不是csv ;-)
我建议您手动打开并读取该文件,使用第一个空格分割每一行,然后根据需要将结果转换为DataFrame。
fp = ... # your file pointer
data = [line.split(' ', maxsplit=1) for line in fp]
如果文件中有很多数据,请考虑使用生成器表达式。
在这两种情况下,您都可以将data
转换为DataFrame
:
pandas.DataFrame.from_records(data, columns=['Integer', 'String'])
(..或直接使用DataFrame
构造函数)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.