我需要帮助阅读看起来像这样的pandas的csv
(DATA), (DATA2) , (DATA3)
(1), (2,3), (4)
列由','分隔。而且在()之间也有','其中一些人。
谢谢!
答案 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
将 DATA3
和astype(float)
转换为数字列。对于DATA2
,您可以调用str.split
并将其转换为列列表:
df['DATA2'].str.split(',')
0 [2, 3]
Name: DATA2, dtype: object