在Python上的R中执行分类,其中每个数据帧都有标签

在Python上的R中执行分类,其中每个数据帧都有标签,python,r,dataframe,classification,Python,R,Dataframe,Classification,我的问题是,不是让数据帧中的每一行对应一个标签,而是有多个数据帧,每个数据帧具有相同的列和行数,但每个数据帧都被标记为l1、l2或l3。您需要数据框中的所有数据才能确定标签 例如,假设我有这个数据帧和它的标签l1,想象我有多个标签l1、l2或l3。我需要创建一个分类模型,这样当我有一个像这样的新数据框架时,它可以对它进行分类 如何在R或Python中对其进行结构化 我希望这是清楚的 您的想法是正确的:为了使分类模型能够工作,您需要在生成的数据帧的单行中包含单个样本的数据。您在示例中使用的是某种

我的问题是,不是让数据帧中的每一行对应一个标签,而是有多个数据帧,每个数据帧具有相同的列和行数,但每个数据帧都被标记为l1、l2或l3。您需要数据框中的所有数据才能确定标签

例如,假设我有这个数据帧和它的标签l1,想象我有多个标签l1、l2或l3。我需要创建一个分类模型,这样当我有一个像这样的新数据框架时,它可以对它进行分类


如何在R或Python中对其进行结构化


我希望这是清楚的

您的想法是正确的:为了使分类模型能够工作,您需要在生成的数据帧的单行中包含单个样本的数据。您在示例中使用的是某种交叉表,但您需要的是平表。幸运的是,使用pandas,您可以使用
unstack()
轻松创建平面表格:

>>df=pd.DataFrame([1,10,1000],[2,12,1245],[3,20,1837],[4,18,1837],
列=['Time'、'Measure1'、'Measure2'])
>>>s=df.set_index('Time').unstack()
>>>
时间
措施11 10
2         12
3         20
4         18
措施211000
2       1245
3       1837
4       1837
数据类型:int64
结果是一个带有多索引的
pd.Series
(=单列)。然后,您可以将标签添加到测量中,并将所有数据连接到单个数据帧中

>s['label']='l1'
>>>df=pd.concat([s,s,s],轴=1).T
>>>df
测量1测量2标签
时间123441234
010 12 20 18 1000 1245 1837 1837 l1
110120181000124518371837 l1
210 12 20 18 1000 1245 1837 1837 l1
在列中使用多索引有点笨拙,但可以用

>>> df.columns = ['_'.join(str(x) for x in c).strip('_') for c in df.columns]
>>> df
  Measure1_1 Measure1_2 Measure1_3  ... Measure2_3 Measure2_4 label
0         10         12         20  ...       1837       1837    l1
1         10         12         20  ...       1837       1837    l1
2         10         12         20  ...       1837       1837    l1

你就不能附加所有的数据帧并创建一个标签列吗?我不这么认为,因为我不想考虑单个行,我需要在分类时考虑每个数据帧中的所有数据。我也不确定这是否适用于测试,因为我需要在整个数据框架上进行测试。您应该给出一些示例数据,因为您的解释不是很清楚。在我的理解中,假设有3个数据帧,每个数据帧有一个标签。对于所有的数据框,您都有相同的列名(我猜是与功能相对应的)和这些列名的值,“您需要数据框中的所有数据才能确定标签”是什么意思?您能粘贴示例数据框吗,我想您不能马上粘贴,您需要将所有数据表示为一行,然后添加标签,某种形式的数据旋转或转置可能会有所帮助,这正是我需要的Rob,谢谢您的回答
>>> df.columns = ['_'.join(str(x) for x in c).strip('_') for c in df.columns]
>>> df
  Measure1_1 Measure1_2 Measure1_3  ... Measure2_3 Measure2_4 label
0         10         12         20  ...       1837       1837    l1
1         10         12         20  ...       1837       1837    l1
2         10         12         20  ...       1837       1837    l1