python - 如何从数据帧中获取数组或列表(其中 python 读取为 str 格式类型)?

标签 python arrays pandas dataframe

我有一个数据框,其中 python 读取每行中 str 类型的列。但它实际上是一个列表或数组。我想如何从 str 格式获取数组?

我已经尝试拆分函数,但它给出了奇怪的输出。

由于声誉较低,我无法发布图片

可以说这是我的数据框(不是实际数据)

enter image description here

df = pd.DataFrame({'Weight':[str([45, 88, 56]), str([15, 71, 62])], 
                   'Name':[str(['Sam', 'Andrea', 'Alex']), str(['Robin', 'Kia', 'Lina'])], 
                   'Age':[str([14, 25, 55]), str([8, 21, 30])]}) 

如果我们检查第一行和第一列的格式是 str 格式

type(df['Weight'][0])
>> str

如果我们使用 split 函数,我得到,

pd.DataFrame(np.column_stack((df['Weight'][0].split(), df['Age'][0].split())))
>> array([['[45,', '[14,'],
       ['88,', '25,'],
       ['56]', '55]']], dtype='<U4')

enter image description here

我的预期输出是能够获得数组。

enter image description here

array([45, 88, 56], dtype=int64)

我还是Python新手。它已经在 python 中内置了任何最快的函数,而不是我需要将 [ , ] 替换为 null。

最佳答案

也许你可以尝试这种方式,通过使用ast模块,将字符串放入一个列表并将列表设置到np.array中。

import ast
df = pd.DataFrame({'Weight':[str([45, 88, 56]), str([15, 71, 62])], 
                   'Name':[str(['Sam', 'Andrea', 'Alex']), str(['Robin', 'Kia', 'Lina'])], 
                   'Age':[str([14, 25, 55]), str([8, 21, 30])]}) 

a = np.array(ast.literal_eval(df['Weight'][0]))
b = np.array(ast.literal_eval(df['Age'][0]))
pd.DataFrame(np.column_stack((a, b)))

关于python - 如何从数据帧中获取数组或列表(其中 python 读取为 str 格式类型)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56413950/

相关文章:

python - 查找两个数据框中的共同元素

python - Pandas v0.13.0 : Setting DataFrame values of type datetime64[ns]

python - 如何将数组添加到现有数组的特定行?

python - Django 与 Heroku : Getting started

python - 类型错误 : can't multiply sequence by non-int of type 'float'

javascript - 如何仅通过一个变量声明正确排序数组并删除 JavaScript 中的重复项?

objective-c - 遍历数组并 append 到 Objective-C 中的字符串

python - 为 pandas.DataFrame 复制 GROUP_CONCAT

java - 解析浮点型文本文件并按降序排序

python - 如何在 pandas 中将 n*m DataFrame 与 1*m DataFrame 相乘?