我有一个名为 tropical.txt
的文本文件,其中包含多个列表,每个列表均由换行符分隔。请注意,逗号周围有空格。
space here and space here
| |
['papaya' , 'mangosteen' , 'banana']
[]
['coconut' , 'mango']
['mangosteen' , 'papaya']
我尝试了以下代码
import pandas as pd
df = pd.read_csv('tropical.txt', sep='\n', header=None, engine = 'python')
df
这给了我
ValueError: Specified \n as separator or delimiter. This forces the python engine which does not accept a line terminator. Hence it is not allowed to use the line terminator as separator.
如果我这么做
import pandas as pd
df = pd.read_csv('tropical.txt', header= None, engine = 'python')
df
输出不是我想要的
0 1 2
0 ['papaya' 'mangosteen' 'banana']
1 [] None None
2 ['coconut' 'mango'] None
3 ['mangosteen' 'papaya'] None
我期待着
0
0 [papaya,mangosteen,banana]
1 []
2 [coconut,mango]
3 [mangosteen,papaya]
有什么建议吗?
最佳答案
您可以使用read_csv
,通过指定行中不会出现的分隔符(例如\0
)(以便将每一行作为一个整体读取)和 ast.literal_eval
作为值的转换器:
import ast
pd.read_csv('tropical.txt', header=None, sep='\0', names=['fruits'], converters={ 'fruits' : ast.literal_eval })
输出:
fruits
0 [papaya, mangosteen, banana]
1 []
2 [coconut, mango]
3 [mangosteen, papaya]
关于python - 将具有多个列表的文本文件读取到 pandas dataframe 中,列表中的元素之间存在空格和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72795515/