如何在pandas数据帧中将列拆分为两个

时间:2018-05-15 10:22:24

标签: python pandas csv dataframe split

这就是CSV列中的单元格如何

[u"ABC||||'ABCDadfasf||||'random something', 'another random']
[u"ABCD||||'ABCDadfasf||||'random somethingadf', 'another random adsd']
[u"ABDC||||'ABCDasdadfasf||||'random something random', 'another something random']

`

我想像下面这样打破它。根据(' ||||')

拆分
Col 1      Col 2          Col 3 
[u"ABC    ABCDadfasf    'random something', 'another random']
[u"ABCD   ABCDadfasf    'random somethingadf', 'another random adsd']
[u"ABDC   ABCDasdadfasf 'random something random', 'another something random']

这就是我试过的

Cov = pd.read_csv("path to CSV.csv", sep='||||', names = ["col 1", "col 2", "col 3"], engine = 'python')    

它没有显示任何错误,但列没有拆分。

1 个答案:

答案 0 :(得分:0)

\用于转义|,因为特殊的正则表达式字符:

import pandas as pd

temp=u"""[u"ABC||||'ABCDadfasf||||'random something', 'another random']
[u"ABCD||||'ABCDadfasf||||'random somethingadf', 'another random adsd']
[u"ABDC||||'ABCDasdadfasf||||'random something random', 'another something random']"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep=r"\|\|\|\|", names = ["col 1", "col 2", "col 3"], engine = 'python') 

print (df)
     col 1           col 2                                              col 3
0   [u"ABC     'ABCDadfasf              'random something', 'another random']
1  [u"ABCD     'ABCDadfasf      'random somethingadf', 'another random adsd']
2  [u"ABDC  'ABCDasdadfasf  'random something random', 'another something ...

#temp=u"""