在Python2.7中使用for循环创建多个数据帧

2024-06-16 11:26:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份地点清单

["HOME", "Office", "SHOPPING"]

和熊猫数据框“DF”

^{pr2}$

我想用for循环为家庭、办公室、购物创建3个不同的数据帧,但我做不到。在

我是python新手

请帮忙。在

谢谢 露西


Tags: 数据dfhomefor家庭购物办公室office
2条回答

使用groupby(),然后调用它的get_group()方法:

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

但我认为在for循环中添加全局变量不是一个好方法,可以通过以下方法将groupby转换为dict:

^{pr2}$

然后可以使用d["HOME"]来获取数据。在

我得到了我想要的答案

import pandas as pd
gbl = globals()
for i in locations:
gbl['df_'+i] = df[df.Start_Location==i]

这将创建3个数据帧df_HOME、df_office和df_SHOPPING

谢谢

相关问题 更多 >