【问题标题】:How to change list into data frama in python如何在python中将列表更改为数据帧
【发布时间】:2021-12-02 18:39:38
【问题描述】:

我有一个包含带有时间戳的大数据的列表。我想以时间戳作为第一列,values1、value2、...作为下一个列来实现数据框。

我的代码给出了这个小数据框

valList = ['value1','value2','value3','value4','value5','value6','value7','value8','value9','value10','value11','value12','value13','value14','value15'] 
pd.DataFrame([df],columns = valList)

这就是列表的样子。

【问题讨论】:

  • pd.concat(df, axis=1)?

标签: python pandas list dataframe


【解决方案1】:

首先,您可以将数据拆分为时间戳和数据值

#I am using a small list to demonstrate:

l=['2018-10-01 00:00:00+00:00  28385.21','2018-10-01 00:00:00+00:00  12280.00']

从一个空列表k创建另一个列表

k=[]
for x in l:
  k.append(x.split('  ')) # there are 2 blank spaces in split to separate date with values

现在,k 将如下所示:

[['2018-10-01 00:00:00+00:00', '28358'],
['2018-10-01 00:00:00+00:00', '21358']]

一次,你得到 k 将所有的值,将它转换成一个数据框:

pd.DataFrame(k) # you can change the names of columns in this function according to your need

0   2018-10-01 00:00:00+00:00   28358
1   2018-10-01 00:00:00+00:00   21358

【讨论】:

    【解决方案2】:

    看起来您正在从熊猫系列列表中创建一个 DataFrame 对象。

    看起来那些系列已经有了一个合适的列名。

    您唯一需要做的就是按列连接这些系列,确保它们的长度相同。

    根据pandas.concat documentation,你可以这样做:

    df = pd.concat([series_objs], axis=1)
    

    其中[series_objs] 是您的pandas.Series 对象列表。

    【讨论】:

      【解决方案3】:

      在这里您可以找到答案。我刚刚创建了一个新的 df,请与您的 df 进行比较。

      import pandas as pd
      x = [1,2,3,5]
      y = [1,2,3,5]
      z = [1,2,3,5]
      
      df = pd.DataFrame(list(zip(x, y, z)), columns=["x", "y", "z"])
      df
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-18
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多