我想从列表中创建2列的数据框。 该列表包含:州和地区名称(按顺序) 各州的名称前带有“ edit”(编辑)字样,而其他字词则是地区名称 例如这里的州是阿拉巴马州,她的地区名称是佛罗伦萨的奥本,直到我们到达第二个州“阿拉斯加”。
['Alabama[edit]',
'Auburn',
'Florence',
'Jacksonville',
'Livingston',
'Montevallo',
'Troy',
'Tuscaloosa',
'Tuskegee',
'Alaska[edit]',
'Fairbanks',
'Arizona[edit]',
'Flagstaff',
'Tempe',
'Tucson',
'Arkansas[edit]',
'Arkadelphia',
....
数据框列将是州和地区名称。
这是我的代码:
for i in range(len(list)):
if 'edit' in list[i]:
university['state'][i:]=re.sub('\[.+','',list[i])
else:
university['regionName'][i]=list[i]
答案 0 :(得分:1)
对信息进行预处理,以创建具有(state,region)
个名称的列表元组。使用它来构造DataFrame
names = ['Alabama[edit]',
'Auburn',
'Florence',
'Jacksonville',
'Livingston',
'Montevallo',
'Troy',
'Tuscaloosa',
'Tuskegee',
'Alaska[edit]',
'Fairbanks',
'Arizona[edit]',
'Flagstaff',
'Tempe',
'Tucson',
'Arkansas[edit]',
'Arkadelphia']
data = []
state = None
for name in names:
name = name.strip()
if name.endswith('[edit]'):
state = name[:-6]
continue
if not state: # In case the first name of the list is not a state
state = 'Unknown'
data.append((state,name))
df = pd.DataFrame(data)
>>> df
0 1
0 Alabama Auburn
1 Alabama Florence
2 Alabama Jacksonville
3 Alabama Livingston
4 Alabama Montevallo
5 Alabama Troy
6 Alabama Tuscaloosa
7 Alabama Tuskegee
8 Alaska Fairbanks
9 Arizona Flagstaff
10 Arizona Tempe
11 Arizona Tucson
12 Arkansas Arkadelphia