I have a list of locations
[\"HOME\", \"Office\", \"SHOPPING\"]
and a pandas data frame \"DF\"
Start_Location End_Location
Use groupby()
and then call it's get_group()
method:
import pandas as pd
import io
text = b"""Start_Location End_Location Date
OFFICE HOME 3-Apr-15
OFFICE HOME 3-Apr-15
HOME SHOPPING 3-Apr-15
HOME SHOPPING 4-Apr-15
HOME SHOPPING 4-Apr-15
SHOPPING HOME 5-Apr-15
SHOPPING HOME 5-Apr-15
HOME SHOPPING 5-Apr-15"""
locations = ["HOME", "OFFICE", "SHOPPING"]
df = pd.read_csv(io.BytesIO(text), delim_whitespace=True)
g = df.groupby("Start_Location")
for name, df2 in g:
globals()["df_" + name.lower()] = df2
but I think add global variables in a for loop isn't a good method, you can convert the groupby to a dict by:
d = dict(iter(g))
then you can use d["HOME"]
to get the data.