【发布时间】:2018-08-26 17:51:50
【问题描述】:
我有这张表,主要问题是ID ,W_Weight 与Class 列的长度不同
注意:
ID的每个数字都与Class相关联,例如 (ID 0有Class 1.0和ID 4有Class 5.0)
ID W_Weight Class
0 0 0.255265 1.0
1 0 0.273844 1.0
2 0 0.351219 1.0
3 0 0.262033 1.0
4 0 0.351219 5.0
5 0 0.258109 1.0
6 0 0.296328 5.0
7 0 0.351219 1.0
8 0 0.301208 1.0
9 0 0.273844 1.0
10 0 0.317767 1.0
11 1 0.299451 1.0
12 1 0.327183 5.0
13 1 0.391577 1.0
14 1 0.272526 1.0
15 1 0.412015 1.0
16 1 0.412015 1.0
17 1 0.287148 1.0
18 1 0.168667 5.0
19 1 0.257689 1.0
20 1 0.242609 1.0
21 2 0.190351 5.0
22 2 0.204205 5.0
23 2 0.254588 5.0
24 2 0.261904 1.0
25 2 0.195398 5.0
26 2 0.248913 5.0
27 2 0.161089 1.0
28 2 0.240355 5.0
29 2 0.261904 1.0
... ... ... ...
410722 32742 0.190023 NaN
410723 32742 0.190023 NaN
410724 32742 0.184970 NaN
410725 32742 0.166998 NaN
410726 32742 0.196789 NaN
410727 32742 0.171033 NaN
410728 32742 0.207060 NaN
410729 32742 0.171033 NaN
410730 32742 0.179186 NaN
410731 32742 0.207060 NaN
410732 32742 0.182852 NaN
410733 32742 0.146492 NaN
410734 32742 0.141293 NaN
410735 32742 0.193123 NaN
410736 32742 0.207060 NaN
410737 32742 0.092576 NaN
410738 32742 0.207060 NaN
410739 32742 0.160762 NaN
410740 32742 0.165249 NaN
410741 32742 0.207060 NaN
410742 32742 0.184970 NaN
410743 32742 0.147506 NaN
410744 32742 0.207060 NaN
410745 32742 0.190023 NaN
410746 32742 0.116286 NaN
410747 32742 0.070032 NaN
410748 32742 0.207060 NaN
410749 32742 0.166998 NaN
410750 32742 0.147506 NaN
410751 32742 0.207060 NaN
想要的表格应该是这样的
注意:索引为 0 的第一行只是一个例子,我想做 这适用于
W_Weight列中的所有数据
ID W_Weight Class
0 0 {0.25,0.27,0.35,0.26,0.35,0.25,0.29,0.35,0.30,0.27,0.31} 1.0
11 1 0.299451 1.0
12 1 0.327183 5.0
13 1 0.391577 1.0
14 1 0.272526 1.0
15 1 0.412015 1.0
16 1 0.412015 1.0
17 1 0.287148 1.0
18 1 0.168667 5.0
19 1 0.257689 1.0
20 1 0.242609 1.0
21 2 0.190351 5.0
22 2 0.204205 5.0
23 2 0.254588 5.0
24 2 0.261904 1.0
25 2 0.195398 5.0
26 2 0.248913 5.0
27 2 0.161089 1.0
28 2 0.240355 5.0
29 2 0.261904 1.0
我这样做是为了将 Class 与 ID and W_Weight 匹配,因为我正在使用 TensorFlow 进行分类
【问题讨论】:
-
你为什么要做出如此适得其反的事情?这将导致对象列并杀死所有性能/效率。
-
想要按
Class分组并聚合W_Weight并没有错。但不要将此结构存储在数据框中。还有其他数据类型(例如dict)可用于实现此目的。如果您考虑到这一点重新表述您的问题,那么有一个简单的解决方案。 -
如果你真的想试试
df.groupby('ID').apply(set) -
在您的示例中,ID==0 与两个类相关联:1.0 和 5.0,这与您的注释相矛盾。请澄清。
-
根据您以后要执行的操作,将集合存储为数组可能会更好,在这种情况下,您需要
df.groupby('ID')['W_Weight'].unique(),这样您至少可以索引元素。跨度>
标签: python python-3.x pandas numpy tensorflow