我有一个大约有250万行的数据帧,我想把它分为大约10000行(一行对应于TICKER的每一个唯一值),并将I的每一个值的名称命名为df(I)
例如,对于以下数据帧
df = pd.DataFrame({"ticker": ["A", "A", "BB", "BB", "CCC", "CCC", "A"],
"date": ["04-30-2020", "07-30-2020", "05-31-2020", "08-31-2020", "06-30-2020", "09-30-2020", "10-31-2020"],
"assets": ["40","50","60","70","80","90","100"]})
我希望有一个循环可以执行以下操作: 对于每个i(i=股票代码的唯一值) dfi=df(df.ticker==i)
比如说 如果第i个值为CCC:
dfCCC=df(df.ticker='CCC')
print(dfCCC)
ticker date assets
0 CCC 06-30-2020 80
1 CCC 09-30-2020 90
这可能吗?如果可能,将如何实现
谢谢你抽出时间
我想你需要这个
作为pd进口熊猫
df=pd.DataFrame({“ticker”:[“A”、“A”、“BB”、“BB”、“CCC”、“CCC”、“A”], “日期”:[“04-30-2020”、“07-30-2020”、“05-31-2020”、“08-31-2020”、“06-30-2020”、“09-30-2020”、“10-31-2020”], “资产”:[“40”、“50”、“60”、“70”、“80”、“90”、“100”])
导入系统
thismodule=sys.modules[名称]
ls=df.ticker.unique().tolist()
对于ls中的i: setattr(此模块,“df”+i,df[df.ticker==i])
显示器(dfA、dfBB、dfCCC)
输出
注:
对于ls中的i: 打印(评估(“df”+i))
是的,您可以使用
groupby
:输出:
相关问题 更多 >
编程相关推荐