格式化pandas中的.txt文件

时间:2016-11-26 00:15:10

标签: python csv pandas file-io data-science

我想采用以下格式的.txt文件:

StateOne[edit]

RegionOne (UniversityOne)[1]

RegionTwo (UniversityTwo)

RegionThree (UniversityThree)[2]

并清理此数据并以此格式的DataFrame返回:

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",将"("中的每个字符移除到需要时结束时。在熊猫中相当新鲜,并且对这种快速简单的方法感到困惑。

1 个答案:

答案 0 :(得分: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)

我希望它有所帮助!