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() 如何返回不同的数据类型?的主要内容,如果未能解决你的问题,请参考以下文章