为什么tolist()方法在我的情况下没有返回列表,但看起来如下?
ShotID的已加载元数据:007_0030 [['007_0030','01 .02.2018','1001-1085','28 mm','T。 4','10 m','Super 35','Sony FS7','Zeiss Ultra Prime','30','172.8°','dolly','','','','']]
def loadshotinfo(self, df, shotid):
ix = df['Shot#'].loc[df['Shot#'].str.contains(shotid)].index
metadatalist = df.values[ix].tolist()
print('Loaded metadata for ShotID: ' + shotid)
print(metadatalist)
我认为值会返回一个数组,而tolist()会从中列出一个列表,那么为什么控制台会出现像[['lsdjasd','gjasvdj']]这样的列表应该看起来像['。 '' ..']
解决:tolist()实际上返回一个列表列表。
答案 0 :(得分:1)
DataFrame是一个表。 .tolist()
返回列表列表,每行一个列表。如果您只有一行,请使用df.values[ix].tolist()[0]
将其解压缩。