【问题标题】:Pandas giving error while adding a list to a Series熊猫在将列表添加到系列时出错
【发布时间】:2023-04-06 04:34:01
【问题描述】:

我在尝试将列表添加到熊猫系列 A 时出错。系列 A 有 2 个元素:

1     0.0
46    0.0
Name: ACCT_BAL, dtype: float64

通过在系列上调用 tolist() 创建的列表(系列是数据框的 1 列)具有 1 个元素:

[0.0]

但是当我这样做时:

A=A.add(list)

我明白了:

ValueError: Lengths must be equal

【问题讨论】:

  • 如果它只是一个元素做A = A.add(lst[0]).
  • 谢谢。它可以是许多元素,因为列表是从数据框中的字段动态创建的。什么意思:长度必须相等?
  • 您是要扩展您的系列还是用系列总结列表中的值? pd.Series.add 是后者,这就是它希望列表与系列长度相同的原因。
  • 基本上,如何“添加”[2,3,4][1,2]?您很自然可以添加[2,3,4][1,2,3] 得到[3,5,7],因为元素之间存在对齐(因此长度相等)。

标签: pandas


【解决方案1】:

我想pd.Series.append(..., ignore_index=True) 就是你要找的东西:


df=pd.Series([0.0, 0.0], index=[1,46], name="ACCT_BAL")
df_2=pd.Series([1.0, 20, 2.3], name="irrelevant_col_name")
df_3=pd.Series([765], name="irrelevant_col_name")

df=df.append(df_2, ignore_index=True)

#outputs:
>>> df
0     0.0
1     0.0
2     1.0
3    20.0
4     2.3
dtype: float64

df=df.append(df_3, ignore_index=True)

#outputs:
>>> df
0      0.0
1      0.0
2      1.0
3     20.0
4      2.3
5    765.0
dtype: float64

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-01
    • 2019-03-06
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    相关资源
    最近更新 更多