对象在数据帧中浮动

2024-09-30 22:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

df_encoded.head()
Time    Q1  Q2  Q3  Q4  Q5  Q6  Q7  Q8  Q9  ... Q31 Q33 Q36 Q38 Q42 Q44 Q45 Q47 Q49 Q50
0   3746    0   3   56  3   1   7   7   0   4152    ... [1, 5, 9, 10]   [6, 2, 0, 1, 3] [1, 11] 19  0   5   5   [54, 55, 97]    [11, 8, 10] 8
1   3778    1   1   21  3   8   4   7   0   8541    ... 1   11  [10, 0, 13, 1]  [9, 2]  1   [0, 1]  [0, 5]  39  9   [8, 4]
2   4261    1   4   8   1   7   11  0   2   870 ... [1, 5, 9]   3   1   13  3   4   4   91  [18, 19, 5, 2, 1, 0, 7, 19, 5, 3, 7, 17, 6, 4,...   [7, 1]
3   1180    1   0   21  3   7   11  16  0   4103    ... [4, 5, 8, 9]    [2, 0, 1, 5, 10]    [10, 4, 11] [19, 20, 9, 11] [5, 0]  4   [0, 4, 6]   54  [16, 12, 11, 9] 4
4   3823    1   3   19  3   2   17  15  7   3251    ... [5, 8, 9, 10]   [2, 0, 1, 7, 1, 5, 4]   10  13  5   4   [4, 6]  [54, 47, 97, 98]    [19, 5, 2, 1, 0, 7, 12, 11, 8, 10]  [8, 0]

所有列中的数据类型都是对象。我可以很容易地将类型从OBJECT改为int或float,因为列中没有任何列表。但正如你在数据框中看到的,有些列中有列表,我无法将它们的类型从OBJECT改为Float…..有什么解决方法吗

最后,我想得到相关矩阵。但是有了object,我就不能在包含object类型数据的列中使用df_encoded.corr()。这个相关矩阵是制作热图所需要的


Tags: 数据类型df列表objecttimeheadencoded
1条回答
网友
1楼 · 发布于 2024-09-30 22:28:37

你需要达到什么目标

如果你明确知道你只能用一个包含列表的行来解决你的问题,并且列表中的对象需要是浮动的,那么你可能需要遍历每一行。如果您有一个巨大的数据集,即数百万行,那么您可能需要重新考虑您要实现的目标

要简单地转换行,您需要使用.apply,它在数据帧中的每一行上迭代,并允许您对该行执行操作,在本例中更改该行中的类型。一个快速的胜利可能是使用numpy.array

import numpy as np

df_encoded['Q31'] = df_encoded.apply(
    lambda x: np.array(x['Q31']).astype(float),
    axis=1
)

相关问题 更多 >