gpt4 book ai didi

python - 如何从Excel单元格中读取列表

转载 作者:行者123 更新时间:2023-12-01 07:05:02 24 4
gpt4 key购买 nike

我将一个列表放入Excel单元格中,当我用pandas读取它时,它没有返回给我一个列表,它返回了一个字符串,我是否可以得到一个列表作为返回?

例如。在单元格中:['a', 'b', 'c']pandas 的输出:'['a', 'b', 'c']'

这是我的代码:

df = pd.read_excel('example.xlsx', index_col=None, header=None)

print(df.iloc[5, 3])
print(type(df.iloc[5, 3]))
## and the code would return the type of df.iloc[5, 3] is equal to a list

最佳答案

在 Excel 中,列表被转换为列表的字符串表示。

df = pd.DataFrame({
'A':list('abcdef'),
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'D':[1,3,5,7,1,['a', 'b', 'c']],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
})

print(df.iloc[5, 3])
['a', 'b', 'c']

df.to_excel('example.xlsx', header=None, index=False)

df = pd.read_excel('example.xlsx', index_col=None, header=None)

print(df.iloc[5, 3])
['a', 'b', 'c']

print(type(df.iloc[5, 3]))
<class 'str'>

因此有必要通过 ast.literal_eval 将其转换为列表

import ast

print(ast.literal_eval(df.iloc[5, 3]))
['a', 'b', 'c']

print(type(ast.literal_eval(df.iloc[5, 3])))
<class 'list'>

或者eval,但是it is bad practise ,所以不推荐:

print(eval(df.iloc[5, 3]))
['a', 'b', 'c']

print(type(eval(df.iloc[5, 3])))
<class 'list'>

关于python - 如何从Excel单元格中读取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58480223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com