一次在多个数据帧中应用相同的代码

时间:2021-07-06 09:21:35

标签: python pandas dataframe

我有一段适用于一个数据帧的代码块,但是,我有一个包含 23 个数据帧的列表,我想应用相同的代码。

我尝试列出所有数据帧,然后通过 for 循环将代码应用于每个数据帧,但我收到了长度错误消息。

这是代码块:

city_arr=[]
county_arr=[]
town_arr=[]
municipality_arr=[]
state_arr=[]
country_arr=[]

for i in range(len(df)):
  if 'address' in df['address'][i].raw:
    address = df['address'][i].raw.get("address", None)
    city = address.get('city', '') 
    town = address.get('town', '') 
    municipality = address.get('municipality', '')
    county = address.get('county','') 
    state = address.get('state','') 
    country = address.get('country','') 
    
    city_arr.append(city)
    state_arr.append(state)
    town_arr.append(town)
    municipality_arr.append(municipality)
    country_arr.append(country)
    county_arr.append(county)

df['city'] = city_arr
df['county'] = county_arr
df['town'] = town_arr
df['municipality'] = municipality_arr
df['state'] = state_arr
df['country'] = country_arr

1 个答案:

答案 0 :(得分:1)

def my_func(df):
    """All the code in your example"""
    return(df)

for dataframe in dataframes:
    dataframe = my_func(dataframe)

如果你以这种方式使用一个函数,你应该不会遇到长度问题。这个问题很可能是因为您的数据帧长度不同,并且您将大小不同的列附加到相关数据帧。