如何从DataFrame中提取当前值构建目标列表?
解决DataFrame提取数值到列表的问题
嘿,我明白你现在的困扰——你想要把DataFrame里一行的所有数值提取成一个干净的列表,但之前取单列得到的是带索引和类型信息的Series。别担心,这有几种简单的方法可以实现你想要的结果:
方法1:提取指定行的目标列
从你的输出看,目标行的索引是18,你可以直接定位这一行,然后选择需要的列(A、B、C、D),再转换成列表:
mylist = stats.loc[18, ['A', 'B', 'C', 'D']].tolist()
方法2:如果是唯一的一行,用位置索引提取
如果你的DataFrame只有这一行数据,可以用iloc按位置取第一行,同时跳过date列(假设它是第一列):
mylist = stats.iloc[0, 1:].tolist()
方法3:如果date是行索引
如果你的date列被设置为DataFrame的索引,那直接通过索引值提取整行再转列表就行:
mylist = stats.loc['2018-05-25'].tolist()
为什么你之前的代码没得到想要的结果?
你执行stats['A']的时候,取的是整个'A'列的Series对象,所以输出会包含行索引、列名和数据类型信息。而我们上面的方法都是定位到一行中的多个列,再通过.tolist()方法把Series转换成纯数值列表。
执行完上面任意一种方法后,mylist就会变成你期望的:
[188.58, 35.56, 1.66, 21.91]
内容的提问来源于stack exchange,提问作者Ann Kriebel
相关产品推荐
相关产品推荐

