我有许多要加载到pandas数据帧中的.csv文件,至少有两个定界符逗号和半冒号,但我不确定其余定界符。我知道可以使用
dataRaw = pd.read_csv(name,sep=",")
和
dataRaw = pd.read_csv(name,sep=";")
不幸的是,如果我不指定定界符,则默认值为逗号,这将导致其他定界符的单列数据帧。因此,有没有一种动态的方式来分配定界符,以便任何csv可以传递给熊猫?例如尝试逗号或分号。熊猫文档并未暗示在csv读取中使用逻辑
熊猫文档中实际上有一个答案(至少对于熊猫0.20.1)
sep:str,默认','
要使用的定界符。如果sep为None,则C引擎无法自动检测到分隔符,但Python解析引擎可以,这意味着后者将被自动使用。此外,超过1个字符且与'\ s +'不同的分隔符将被解释为正则表达式,并且还将强制使用Python解析引擎。注意,正则表达式定界符易于忽略引用的数据。正则表达式示例:“ \ r \ t”
这意味着您可以使用
dataRaw = pd.read_csv(name, sep = None, engine = 'python')
如果除“;”以外的其他分隔符,这也应该起作用 要么 '。' 您的.csv文件中(例如,制表符分隔符)。
如果您使用其他分隔符,则可以使用:
dataRaw = pd.read_csv(name,sep=";|,")
是可处理由OR(|)运算符划分的多个分隔符的正则表达式。