pandas tolist() 如何返回不同的数据类型?

Posted

技术标签:

【中文标题】pandas tolist() 如何返回不同的数据类型?【英文标题】:pandas tolist() how to return different data types? 【发布时间】:2018-10-20 12:33:06 【问题描述】:

我想在将数据框传递给字典之前将其转换为列表。我正在使用以下代码:

df[['date','LTP']].iloc[0:1].values.tolist()

这工作正常,但它返回的数据类型对于两个系列是相同的。虽然我想要一个 int 和一个 double,但这两个系列都是双精度数。

[[1472688000000.0, -0.7222783810000001]]

如果它尝试使用同样适用于两个系列的 astype()。

有什么想法吗? 谢谢

【问题讨论】:

我不认为数组包含混合类型,除非您明确指定是这种情况:df[['date','LTP']].iloc[0:1].astype(object).values.tolist() 我不确定你说“传递给字典”是什么意思 - 但请注意,在 Python 字典中,键是宽松的,例如对于d = 1.00: 'hello',你会发现d[1] 返回'hello' 然后作为字典值传递。但是对于我的应用程序,整数必须保持它们的数据类型。所以基本上我创建的列表需要同时具有两种数据类型。 【参考方案1】:

如果可以接受元组列表,您可以使用zip

df = pd.DataFrame([[1472688000000, -0.7222783810000001]],
                  columns=['date', 'LTP'])

x = df[['date','LTP']].iloc[0:1]

res = list(zip(x.date, x.LTP))

print(res)

[(1472688000000, -0.72227838100000008)]

如果你真的需要一个列表列表,你可以使用:

res = list(map(list, zip(x.date, x.LTP)))

或者使用@coldspeed 的建议通过numpy

【讨论】:

以上是关于pandas tolist() 如何返回不同的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

pandas 返回符合条件单元格所在行

pandas取列值转化为列表

如何在pandas数据框中移动列

处理来自不同函数的多个返回数据集 python pandas

pandas为所有的列名添加后缀(add_suffix)

python pandas如何查找不同excel表格的数据并对比大小?