首页 > 解决方案 > 熊猫数据框中的 Numpy 数组 - 如何规范化值,保持原始结构?

问题描述

我将数组作为数据框中的单元格。数组有 2 列,一个值和一个类别,它们的长度(即行数)不同。

这是一个只有一列的简单示例:

import pandas as pd
import numpy as np
arr1 = np.array([[1, 2,3], ['a','b','c']])
arr2 = np.array([[2, 3], ['a','b']])
df1 = pd.DataFrame(index=np.arange(0, 2), columns=(['column1']))
df1.iloc[0][0]=arr1
df1.iloc[1][0]=arr2

结果 df1 为

0   [[1, 2, 3], [a, b, c]]
1   [[2, 3], [a, b]]

我想要的是列范围内的标准化值作为数组 arr1 和 arr2 中的新列,所以在这种情况下使用 [1,2,3,2,3],而不仅仅是 [1,2,3] 和 [2,3]分别地。我怎样才能做到这一点?数据框 df1 的结构不得更改,只能更改单元格内的内容。

将值提取到列表然后对其进行规范化是一项简单的任务,但是由于复杂的结构,如何“将它们放回去”是我苦苦挣扎的地方。我应该为数组中的所有值添加索引以将它们配对吗?声音缓慢且不必要。我可以以某种方式创建一个对原始数字对象的引用数组并替换它们吗?但如果这样做,我会丢失原始值......但是我将如何将它们添加为新列,因为我只引用原始对象?

我确信有一种直观的方法可以做到这一点,但我无法表达出来。

标签: arrayspandasdataframenumpy

解决方案


推荐阅读