【问题标题】:How to append a list to dataframe without using column names?如何在不使用列名的情况下将列表附加到数据框?
【发布时间】:2019-08-27 17:12:36
【问题描述】:

我想使用DataFrame.append() 将包含四个价格[1, 2, 3, 4] 的列表附加到现有的数据框中,现有的数据框有四列。

使用这个

dataframe = pd.DataFrame(columns=["open", "high", "low", "close"],
                         data = [[1, 2, 3, 4]])

创建数据框

   open  high  low  close
0     1     2    3      4

然后我想附加一些这样的列表:

dataframe = dataframe.append([[5, 6, 7, 8]],
                             ignore_index =True)

给出输出

   open  high  low  close    0    1    2    3
0   1.0   2.0  3.0    4.0  NaN  NaN  NaN  NaN
1   NaN   NaN  NaN    NaN  5.0  6.0  7.0  8.0

虽然我希望将列表继续附加到数据框中,但有没有办法在不使用列名的情况下执行此操作,而只使用四个价格的列表?

【问题讨论】:

  • 首先,停下来问问自己你为什么要这样做。您几乎从不想将单行附加到数据框。
  • @juanpa.arrivillaga,我想这样做是为了将时间序列的刻度数据转换为范围条数据,(范围条是烛台的一种变体,只有在价格超出一定范围时才会生成新的烛台)。

标签: python pandas append


【解决方案1】:

你可以做类似的事情

df.loc[len(df)] = [1, 2, 3, 4]

【讨论】:

  • 如果添加的行不完整,df.loc[len(df)] = [1, 2, 3],会导致大小不匹配?
【解决方案2】:

如果要添加多行,则应使用concat 函数。这将要求您首先在 DataFrame 中添加新数据。

df3 = pd.concat([df1, df2], ignore_index=True)

在文档here 中阅读更多内容。

【讨论】:

  • 我认为 OP 想要将一个列表附加到一个数据框。这里pd.concat 将连接两个数据帧。
  • @Prerit 我知道,我也看到他说“那我想附加一些这样的列表”,关键字列表。
  • 是的,完全错过了“一些”这个词。我的错。他需要将列表列表转换为数据框并连接。
  • 输出和OP一样
猜你喜欢
  • 2021-11-15
  • 2020-06-18
  • 1970-01-01
  • 2018-03-18
  • 2017-11-26
  • 2022-08-16
  • 2018-02-08
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多