python - 如何使用循环创建多个 DataFrame 子集
问题描述
基础数据框
df = pd.DataFrame(np.random.randint(0,10,size=(100,6)),columns =
['red','blue','yellow','green','purple','total'])
如何使用循环对此进行编码?
df_x = df[df.columns[[y,5]]]
我想将此逻辑应用于具有更多列的数据框,但为简单起见,将问题归结为这一点。
下面是所需的输出,创建了 5 个新数据框(假设我不必输入所有 5 行)
df_red = df[df.columns[[0,5]]]
df_blue = df[df.columns[[1,5]]]
df_yellow = df[df.columns[[2,5]]]
df_green = df[df.columns[[3,5]]]
df_purple = df[df.columns[[4,5]]]
解决方案
你可以做groupby
axis =1
和pd.concat
variables = locals()
for x , y in df.iloc[:,:-1].groupby(level=0,axis=1):
variables["df_{0}".format(x)] =pd.concat([y,df.iloc[:,[-1]]],axis=1)
df_red.head()
Out[566]:
red total
0 4 7
1 7 9
2 6 7
3 4 2
4 5 8
推荐阅读
- javascript - 复制文件的 Gulpfile 任务应优化图像(如果有)
- c# - .Net Core 托管服务需要 HttpContext
- r - R中x轴的描述
- javascript - 从表数据中获取 Javascript 对象数组
- react-native - 是否可以在反应本机路由器通量中创建抽屉菜单?
- asp.net - ResolveUrl 在文件夹中找不到 web 服务
- java - 如何通过 Swagger 将 Java POJO 转换为 JSON 模型和示例,就像它在 swagger-ui 中显示的那样
- r - 在 R 中删除数据框中的行后,如何更新 View() 中的行号?
- mysql - 无法将 None 插入 mysql int 字段
- javascript - 如何覆盖默认浏览器撤消操作