Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据帧拆分为已过滤的“;“子数据集”;_Python_Python 3.x - Fatal编程技术网

Python 将数据帧拆分为已过滤的“;“子数据集”;

Python 将数据帧拆分为已过滤的“;“子数据集”;,python,python-3.x,Python,Python 3.x,所以我有一个数据框架,它有几列,一些包含对象(字符串),一些是数字。 我想创建新的数据帧,这些数据帧根据可用对象的组合进行“过滤” 需要说明的是,这些是我的对象类型列: 索引(['OS','Device','Design',', “语言”], dtype='object') [“设计”和[“语言”]各有3个选项。 我根据需要手动筛选[“操作系统”和[“设备”]以匹配它们。 但是,现在我想创建多个变量,每个变量都包含一个“过滤”数据帧 例如: 我有 “android_fltr1_d1”表示下一个过

所以我有一个数据框架,它有几列,一些包含对象(字符串),一些是数字。 我想创建新的数据帧,这些数据帧根据可用对象的组合进行“过滤”

需要说明的是,这些是我的对象类型列:

索引(['OS','Device','Design',', “语言”], dtype='object')

[“设计”和[“语言”]各有3个选项。 我根据需要手动筛选[“操作系统”和[“设备”]以匹配它们。 但是,现在我想创建多个变量,每个变量都包含一个“过滤”数据帧

例如:

我有 “android_fltr1_d1”表示下一个过滤器:

[“操作系统”]=android、[“设备”]=1、[“设计”]=1

和“安卓外语教学大纲3\u d2”代表:

[“操作系统”]=android、[“设备”]=3、[“设计”]=2

我尝试了下一个代码(它工作得非常好)

您可以猜到,我觉得它效率不高,希望使用for循环来生成这些变量(因为我需要将每个[“Language”]选项与我创建的每个过滤器匹配。总共60个变量)。 考虑过在循环中使用类似于.format()的东西以成为某种“占位符”,但找不到方法。 使用嵌套循环来创建所有变量可能是最好的,尽管我对每个列使用一个循环也很满意

我发现很难构建for循环来执行它,如果有任何帮助或指导,我将不胜感激。 谢谢

正如建议的那样,我试图在以下方面找到我的答案:
但我不明白在我的例子中如何使用globals()函数。我还发现,使用“%”已经不起作用了。

创建这么多变量本身就是一种很大的代码味道。你需要这60个变量做什么?如何最有效地创建它们还取决于您以后需要使用它们做什么,因为切片数据帧有几个选项可以选择是否复制DF的某些子部分。谢谢!好的,我想获取每个变量(子数据帧)并对其运行Kmeans算法(和弯头方法)。
android_fltr1_d1 = android_fltr1[android_fltr1["Design"]==1].drop(["Design"],axis=1)
android_fltr1_d2 = android_fltr1[android_fltr1["Design"]==2].drop(["Design"],axis=1)
android_fltr1_d3 = android_fltr1[android_fltr1["Design"]==3].drop(["Design"],axis=1)
android_fltr3_d1 = android_fltr3[android_fltr3["Design"]==1].drop(["Design"],axis=1)
android_fltr3_d2 = android_fltr3[android_fltr3["Design"]==2].drop(["Design"],axis=1)
android_fltr3_d3 = android_fltr3[android_fltr3["Design"]==3].drop(["Design"],axis=1)
android_fltr5_d1 = android_fltr5[android_fltr5["Design"]==1].drop(["Design"],axis=1)
android_fltr5_d2 = android_fltr5[android_fltr5["Design"]==2].drop(["Design"],axis=1)
android_fltr5_d3 = android_fltr5[android_fltr5["Design"]==3].drop(["Design"],axis=1)