将列表追加为数据框行

2022-04-18 00:00:00 pandas python-3.5

问题描述

我有一个带有5个元素的计数列表。

counts = [33, 35, 17, 38, 29]

此计数列表每天都会更新新的编号。因此,我希望创建一个dataframe,并每天将计数数据作为新行追加。列表中的每个元素都应该出现在数据帧中的单独列中。我想做的是:

df = pd.DataFrame(columns = ['w1', 'w2', 'w3', 'w4', 'w5'])
df = df.append(counts)

但它不是将计数数据作为一行添加,而是添加了一个新列。有关于如何正确执行此操作的帮助吗?

假设第0天的计数为[33,35,17,38,29],第1天的计数为[30,36,20,34,32],我希望输出如下:

      w1 w2 w3 w4 w5
    0 33 35 17 38 29
    1 30 36 20 34 32

其中index表示进行计数的日期。有帮助吗?


解决方案

如果您知道开头的day0day1,则希望按照Jezrael的建议进行构建。

但我假定您希望能够在循环中添加新行。

解决方案loc

使用loc时,您需要使用尚不存在的索引值。在本例中,我假设我们维护的是一个泛型RangeIndex。如果是这种情况,我将假设下一个索引与当前DataFrame的长度相同。

df.loc[len(df), :] = counts
df

   w1  w2  w3  w4  w5
0  33  35  17  38  29

让我们进行循环。

day0 = [33, 35, 17, 38, 29]
day1 = [30, 36, 20, 34, 32]

for counts in [day0, day1]:
  df.loc[len(df), :] = counts

df

     w1    w2    w3    w4    w5
0  33.0  35.0  17.0  38.0  29.0
1  30.0  36.0  20.0  34.0  32.0

相关文章