【问题标题】:Adding arrays to dataframe column将数组添加到数据框列
【发布时间】:2017-02-23 10:05:15
【问题描述】:

假设我有这个数据框df

   'Location'  'Rec ID'  'Duration'
0     Houston       126          17
1     Chicago       338        19.3

我想添加一列,其中包含与我的录音相对应的数组,例如:

   'Location'  'Rec ID'  'Duration'                           'Rec'
0     Houston       126          17    [0.2, 0.34, 0.45, ..., 0.28]
1     Chicago       338        19.3    [0.12, 0.3, 0.41, ..., 0.39]

当我执行df.set_value() 命令时,我收到以下错误:

ValueError: setting an array element with a sequence.

【问题讨论】:

标签: python arrays pandas dataframe


【解决方案1】:

我认为最简单的方法是分配listslist,只需要将lists 的长度与lengthDataFrame 的长度相同:

arr = [[0.2, 0.34, 0.45, 0.28], [0.12, 0.3, 0.41, 0.39]]
print (arr)
[[0.2, 0.34, 0.45, 0.28], [0.12, 0.3, 0.41, 0.39]]

print (len(arr))
2
print (len(df))
2

df["'Rec'"] = arr
print (df)
   'Location'     'Rec  ID'  'Duration'                    'Rec'
0           0  Houston  126        17.0  [0.2, 0.34, 0.45, 0.28]
1           1  Chicago  338        19.3  [0.12, 0.3, 0.41, 0.39]

如果使用numpy array,先转换tolist

arr = np.array([[0.2, 0.34, 0.45, 0.28], [0.12, 0.3, 0.41, 0.39]])
print (arr)
[[ 0.2   0.34  0.45  0.28]
 [ 0.12  0.3   0.41  0.39]]

df["'Rec'"] = arr.tolist()

print (df)
   'Location'     'Rec  ID'  'Duration'                    'Rec'
0           0  Houston  126        17.0  [0.2, 0.34, 0.45, 0.28]
1           1  Chicago  338        19.3  [0.12, 0.3, 0.41, 0.39]

【讨论】:

  • @piRSquared - 谢谢。我不测试它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 2013-09-09
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
  • 2019-11-07
  • 2017-09-16
相关资源
最近更新 更多