我有一个csv文件,看起来像my csv file looks like this
例如,"(2011/07/21 -1.0000 $, 2011/08/21 -1.0000 $)"
此值应全部位于列Expiry
中,由于逗号分隔,excel在列Expiry
和Currency
中显示它们。
现在,我想将此csv文件读入python,由于出现逗号分隔符,这给我带来了麻烦。有什么方法可以阅读,以便理想的数据帧看起来像ideal format
因此,就像有"whatever inside"
时一样,然后将""
中的事物视为一个整体,然后将它们放在一列中,否则将被comma+space
分开。
谢谢。
答案 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