【问题标题】:How to fill in columns from lists/arrays into an empty Pandas dataframe with only column names如何将列表/数组中的列填充到只有列名的空 Pandas 数据框中
【发布时间】:2020-04-17 21:28:11
【问题描述】:

我有一个包含多个列名的数据框。当我获取每一列的数据时,我必须创建行。我没有在一个地方提供所有行数据。当我获取特定行中的列的数据时,我将填充它

在下面的这个例子中,我创建了一个空数据框,并且我试图用一组值填充一个特定的列。这不起作用。

import pandas as pd
import numpy as np

col_names = ['ampere', 'freq', 'count']
dataf = pd.DataFrame(columns = col_names)
freq = np.arange(0.6,2.6,0.1).tolist()
#Add the list of frequencies to the frequency column
dataf['freq'].iloc[1:len(freq)] = freq

我得到的错误是

ValueError: 无法将大小为 20 的序列复制到维度为 0 的数组轴

【问题讨论】:

  • 实例化时需要指定数据框的大小

标签: python pandas dataframe


【解决方案1】:

你快到了!不需要iloc-indexing。

所以只需将最后一行更改为

dataf['freq'] = freq

它应该按预期工作。

如果您想继续从不同列表中添加更多行,正如您在评论中提到的,您可以使用以下代码 sn-p:

import pandas as pd
import numpy as np

col_names = ['ampere', 'freq', 'count']
dataf = pd.DataFrame(columns = col_names)
freq = np.arange(0.6,2.6,0.1).tolist()
#Add the list of frequencies to the frequency column
dataf['freq'] = freq

freq2 = np.arange(7,70,1).tolist()

for i, value in enumerate(freq2, len(dataf)):
    dataf.loc[i] = [np.nan, value, np.nan]

我希望这有助于解决您的问题。

【讨论】:

  • 这行得通。但是,如果我必须继续附加到来自各种列表的列,我该如何实现呢?
  • 我更新了代码来代表你刚刚评论的问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 2020-08-05
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 2016-12-18
  • 2020-03-16
相关资源
最近更新 更多