【问题标题】:pandas tolist() how to return different data types?pandas tolist() 如何返回不同的数据类型?
【发布时间】: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'
  • 然后作为字典值传递。但是对于我的应用程序,整数必须保持它们的数据类型。所以基本上我创建的列表需要同时具有两种数据类型。

标签: python list pandas series


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-09-10
    • 1970-01-01
    • 2015-09-28
    • 2011-06-27
    • 2017-02-10
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多