Python 使用日期对象读取\u csv
我有一个csv文件,看起来像 例如,Python 使用日期对象读取\u csv,python,pandas,Python,Pandas,我有一个csv文件,看起来像 例如,“(2011/07/21-1.0000$,2011/08/21-1.0000$)”此值应全部位于到期列中,excel在到期列和货币列中显示它们,因为使用了逗号分隔符 现在我想将这个csv文件读入python,由于逗号分隔符的问题,它给我带来了麻烦。有没有什么方法可以让我读到理想的数据帧 因此,这就像每当有一个“which in”,然后将“which in”作为一个整体处理,并将它们放在一列中,否则按逗号+空格进行拆分 谢谢。如果要忽略的,前面总是有一个文本$,
“(2011/07/21-1.0000$,2011/08/21-1.0000$)”
此值应全部位于到期
列中,excel在到期
列和货币
列中显示它们,因为使用了逗号分隔符
现在我想将这个csv文件读入python,由于逗号分隔符的问题,它给我带来了麻烦。有没有什么方法可以让我读到理想的数据帧
因此,这就像每当有一个“which in”
,然后将“which in”
作为一个整体处理,并将它们放在一列中,否则按逗号+空格进行拆分
谢谢。如果要忽略的,
前面总是有一个文本$
,则可以使用反向查找执行以下操作:
pd.read_csv('myfile.csv', sep=r'(?<!\$),\s')
pd.read\u csv('myfile.csv',sep=r'(?如果要忽略的,
前面总是有一个文本$
,则可以使用反向查找执行以下操作:
pd.read_csv('myfile.csv', sep=r'(?<!\$),\s')
pd.read\u csv('myfile.csv',sep=r'(?另一种方法是:
df = pd.read_csv('nonideal.csv', quotechar='"')
在这种情况下,带“”引号的字符串将被视为总计,即使其中有逗号
输出您的练习数据:
>>> df = pd.read_csv('./Desktop/df1.csv', quotechar='"')
>>> df
units one expiry currency amount
0 100 0 "(2011/07/21-1.000$, 2011/08/21-1.000$)" 100 0
1 0 20 "(2011/07/21-1.000$, 2011/08/21-1.000$)" 0 30
另一种方法是:
df = pd.read_csv('nonideal.csv', quotechar='"')
在这种情况下,带“”引号的字符串将被视为总计,即使其中有逗号
输出您的练习数据:
>>> df = pd.read_csv('./Desktop/df1.csv', quotechar='"')
>>> df
units one expiry currency amount
0 100 0 "(2011/07/21-1.000$, 2011/08/21-1.000$)" 100 0
1 0 20 "(2011/07/21-1.000$, 2011/08/21-1.000$)" 0 30
你想忽略的,
是否总是在前面加上一个字面值$
?@rahlf23是的!你想忽略的,
是否总是在前面加上一个字面值$
?@rahlf23是的!我想你的意思是quotechar='“
。除此之外,这是正确的解决方案我想你的意思是quotechar='”“
。除此之外,这是正确的解决方案此解决方案并不理想,因为此文件的分隔符实际上是一个逗号,引号用于分组。一旦获得更复杂的数据集,使用这种regexp会带来麻烦。我同意这不是理想的解决方案,但对于这个最小的用例,我认为我会把它扔出去。@d_kennetz answer绝对是首选的解决方案。这个解决方案并不理想,因为这个文件的分隔符实际上是一个逗号,引号用于分组。一旦你得到更复杂的数据集,使用这种regexp就是自找麻烦。我同意这不是理想的解决方案,但是对于这个“这是一个很小的用例,我想我会把它扔掉的。”d_kennetz的答案肯定是首选的解决方案。