将包含括号的数据加载到pandas数据帧中

时间:2017-09-17 00:08:38

标签: python pandas csv dataframe

我需要帮助阅读看起来像这样的pandas的csv

(DATA), (DATA2) , (DATA3)
(1), (2,3), (4)

列由','分隔。而且在()之间也有','其中一些人。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用正则表达式分隔符调用read_csv

df = pd.read_csv(buf, delimiter='\s*,\s*(?=\()', engine='python')
df
  (DATA) (DATA2) (DATA3)
0    (1)   (2,3)     (4)

现在,从列中删除括号:

df.columns = df.columns.str.replace('[()]', '')
df = df.replace('[()]', '', regex=True)
df

  DATA DATA2 DATA3
0    1   2,3     4
现在可以使用DATA

DATA3astype(float)转换为数字列。对于DATA2,您可以调用str.split并将其转换为列列表:

df['DATA2'].str.split(',')
0    [2, 3]
Name: DATA2, dtype: object