给出list.append的条件

时间:2017-02-17 08:23:51

标签: python pandas append

我将文本文件读为行,其前几行如下所示:

['Alabama[edit]\n',
 'Auburn (Auburn University)[1]\n',
 'Florence (University of North Alabama)\n',
 'Jacksonville (Jacksonville State University)[2]\n',
 'Livingston (University of West Alabama)[2]\n',
 'Montevallo (University of Montevallo)[2]\n',
 'Troy (Troy University)[2]\n',
 'Tuscaloosa (University of Alabama, Stillman College, Shelton State)[3][4]\n',
 'Tuskegee (Tuskegee University)[5]\n',
 'Alaska[edit]\n',
 'Fairbanks (University of Alaska Fairbanks)[2]\n',
 'Arizona[edit]\n',
 'Flagstaff (Northern Arizona University)[6]\n',
 'Tempe (Arizona State University)\n',
 'Tucson (University of Arizona)\n',

我想构建一个数据框,其中一列中的状态和下一列中的城市。我这样做:

    list = []
    for line in file:
        if '[edit]' in line:
            state = line.split('[edit]')[0]
        else:
            if '(' in line:
                region = line.split(' (')[0]
            else:
                region = line.split(' (')[0]

            list.append([state,region])

    df= pd.DataFrame(list, columns=["State", "RegionName"])

输出如下:

    State   RegionName
0   Alabama     Auburn
1   Alabama     Florence
2   Alabama     Jacksonville
3   Alabama     Livingston
4   Alabama     Montevallo

我认为它工作正常,但我的问题是算法!我的意思是当读取第一行时,我们得到state = Alabama,no" else"部分执行,我们到达附加行,其中没有区域的状态必须添加到列表中,在这种情况下,我希望第一行没有任何区域,为了解决这个问题,我会使用如下行:

if region != '':
在追加行之前

但是这样的行不是必需的,因为它工作正常! 我的理解是只有当州和地区都有价值时才会执行追加! 如果是这种情况,(我知道这听起来很奇怪),但我怎么知道追加功能背后的隐藏条件呢?就像手册中某处提到的那样?或者有一些我不了解熊猫功能的一般事情...... 我希望我的问题有道理! 谢谢

0 个答案:

没有答案