带有日期对象的熊猫read_csv

时间:2018-10-18 20:11:09

标签: python pandas

我有一个csv文件,看起来像my csv file looks like this

例如,"(2011/07/21 -1.0000 $, 2011/08/21 -1.0000 $)"此值应全部位于列Expiry中,由于逗号分隔,excel在列ExpiryCurrency中显示它们。

现在,我想将此csv文件读入python,由于出现逗号分隔符,这给我带来了麻烦。有什么方法可以阅读,以便理想的数据帧看起来像ideal format

因此,就像有"whatever inside"时一样,然后将""中的事物视为一个整体,然后将它们放在一列中,否则将被comma+space分开。

谢谢。

2 个答案:

答案 0 :(得分:1)

如果您要忽略的,始终以文字$开头,则可以使用后面的否定式进行以下操作:

pd.read_csv('myfile.csv', sep=r'(?<!\$),\s')

您可以看到运行中的正则表达式here

答案 1 :(得分:1)

另一种方法是:

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