python - 当键嵌入列表时从列表创建字典
问题描述
我有一个美国相应州的大学城列表我想创建一个数据框,其中包含两列,一列用于“州”,另一列用于“区域名称”。数据框应如下所示:
DataFrame( [ ["Alabama", "Auburn"], ["Alabama", "Troy"],
["Alabama", "Tuscaloosa"], ["Alabama", "Tuskegee"], ["Alaska",
"Fairbanks"], ["Arizona", "Flagstaff"], ["Arizona", "Tempe"], ["Arizona",
"Tucson"] ],
columns=["State", "RegionName"] )
问题是我有一个包含 States 和 RegionNames 的列表,对应的 RegionNames 在列表中的 State 名称之后,如下所示:
['Alabama',
'Auburn','Troy','Tuscaloosa','Tuskegee',
'Alaska','Fairbanks',
'Arizona','Flagstaff','Tempe','Tucson']
我一直在看例子,我目前坚持这一点。任何帮助将不胜感激!
解决方案
您可能需要在此处创建状态列表,然后使用ffill
withmask
拆分原始单列数据框
df['RegionName']=df.State
df.State=df.State.where(df.State.isin(States)).ffill()
df=df.loc[df.State!=df.RegionName]
df
Out[80]:
State RegionName
1 Alabama Auburn
2 Alabama Troy
3 Alabama Tuscaloosa
4 Alabama Tuskegee
6 Alaska Fairbanks
8 Arizona Flagstaff
9 Arizona Tempe
10 Arizona Tucson
数据输入
States=['Alabama','Alaska','Arizona']
l=['Alabama',
'Auburn','Troy','Tuscaloosa','Tuskegee',
'Alaska','Fairbanks',
'Arizona','Flagstaff','Tempe','Tucson']
df=pd.DataFrame(l,columns=['State'])