2016-11-26 84 views
-2

我想借一个.txt文件,该文件是采用以下格式:格式化大熊猫.txt文件

StateOne[edit] 

RegionOne (UniversityOne)[1] 

RegionTwo (UniversityTwo) 

RegionThree (UniversityThree)[2] 

,并有这样的数据进行清理,并在此格式的数据帧返回:

State RegionName 
0 StateOne RegionOne 
1 StateOne RegionTwo 
2 StateOne RegionThree 

所以例如我有:

Alabama[edit] 

Auburn (Auburn University)[1] 

Florence (University of North Alabama) 

Jacksonville (Jacksonville State University)[2] 

,我需要此转换成数据帧:

State RegionName 
0 Alabama Auburn 
1 Alabama Florence 
2 Alabama Jacksonville 

我有点困惑如何删除字符,如"["至年底,并让他们被命名为"State"。而对于"RegionName",则在需要时从"("中删除每个字符以结束。在熊猫身上相当新颖,并且为了简单快捷地完成此操作而感到困惑。

+0

通常它如果你至少已经尝试过了,并且显示 – dartdog

+0

谢谢你的建议。我是堆栈溢出的新手,所以我在这里学习规则。我尝试了一个'str.split()'方法,但它似乎没有得到我想要的结果 – kma

回答

0

这是假设状态总是有[]和地区()“编辑”。

的窍门是做一个split在“[”和“(”(如适用),并用字符串的第一部分留。

string = '''Alabama[edit] 

Auburn (Auburn University)[1] 

Florence (University of North Alabama) 

Jacksonville (Jacksonville State University)[2]''' 

i = 0 
print(' \t' + 'State' + '\t' + 'RegionName') 

for line in string.split('\n'):  # Split by the line breaks 
    if line == '':     # We skip the line if it is empty 
     continue 
    if 'edit' in line:    # We look for some "edit" and 
     state, spam = line.split('[') # store it in a variable 
     continue      # When we find other 
             # it will replace 
    region_name, spam = line.split(' (') 
    i += 1       # The same but with '(' 
    print(str(i) + '\t' + state + '\t' + region_name) 

我希望它能帮助!

+0

非常感谢你的帮助,我真的很感激。 – kma