【问题标题】:Insert a list inside a cell of a dataframe在数据框的单元格内插入列表
【发布时间】:2020-12-04 16:37:09
【问题描述】:

当我尝试在 DataFrame 单元格中插入列表时,出现以下错误:

ValueError: 使用序列设置数组元素。

我的代码:

di = [3.14, 9.81, 9.55, 9.84]
for i in df_mast.index:
    arr = [[]]
    x = df_mast['avg_speed_bin'][i] 
    for j in di:
        arr.append(x/(1.5 + (0.8 * j /(7/x)**0.5)))
    df_mast['TI_wake'][i] = arr

df_mast['avg_speed_bin'] 将是每个单元格中具有单个值的数据框。

但是当我如下定义 arr 时,它可以工作

arr = [[]]

但是结果是:

[[],
 1.2712604797925258,
 0.5739782581177619,
 0.5865184221642806,
 0.5725657374108474]

如何删除结果中的括号?如果我将 arr 定义为单括号 ([]) 它不起作用,但如果我将其定义为双括号 ([[]]) 它可以工作,但是我的结果。

我该如何解决这个问题?

【问题讨论】:

    标签: python pandas list numpy dataframe


    【解决方案1】:

    您正在附加到 arr 中的外部列表,您需要访问内部列表,这可以通过 arr[0].append(x/(1.5 + (0.8 * j /(7/x)**0.5))) 来完成

    或者,你可以,

    di = [3.14, 9.81, 9.55, 9.84]
    for i in df_mast.index:
        arr = []
        x = df_mast['avg_speed_bin'][i] 
        for j in di:
            arr.append(x/(1.5 + (0.8 * j /(7/x)**0.5)))
        df_mast['TI_wake'][i] = [arr]
    

    【讨论】:

    • 我试过了,还是不行。我现在通过 df_mast['TI_wake'] = df_mast['TI_wake'].astype('object') 解决了这个问题
    【解决方案2】:

    只要做到以下几点就可以解决问题:

    df_mast['TI_wake'] = df_mast['TI_wake'].astype('object')
    

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 2020-08-15
      • 2018-01-24
      • 2021-12-20
      • 2021-12-21
      • 2021-01-08
      • 2018-05-22
      • 1970-01-01
      • 2016-04-04
      相关资源
      最近更新 更多