在python中从pandas dataframes阅读元组

4urapxun  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(132)

这可能是一个愚蠢的问题,但我有一个由一列字符串和一列元组组成的.csv。问题是,当我读取第二列时,我将其作为一列字符串而不是一列元组来读取。
我有一个.csv存档,其中包含下一个 Dataframe :

Paint,RGB Value
Abaddon Black ,"(0, 0, 0)"
Administratum Grey ,"(152, 156, 148)"
Ahriman Blue ,"(0, 112, 138)"
Alaitoc Blue ,"(47, 79, 133)"

该 Dataframe 的第一列由颜料的名称形成,第二列由每个颜料的rgb值的元组形成。
问题是,当我打开.csv文件并读取第二列时,我不会将该列作为元组列表读取,而是将其作为字符串列表读取。下面是我的代码,当我想读取第一个RGB值8in that case the value of the Red)of the first paint(它必须为0):

import pandas as pd


datos = pd.read_csv('Pinturas GW.csv', header = 0)

num = datos['Valor RGB']

print(num[0][0])

但这个打印只有'(',这就是为什么我认为我的程序读取de列作为一个字符串的列表,而不是一个元组的列表.谢谢!!!

7kqas0il

7kqas0il1#

这根本不是一个愚蠢的问题!你可以使用ast.literal_eval函数。这个函数安全地计算一个表达式节点或一个包含Python文字或容器显示的字符串。例如,你可以这样做:

import pandas as pd
import ast

df =  pd.read_csv('Pinturas GW.csv') # load your file
df["RGB Value"] = df["RGB Value"].apply(ast.literal_eval)
print(df["RGB Value"][0][0]) # prints 0

相关问题