【问题标题】:Assigning a list value to pandas dataframe [duplicate]为熊猫数据框分配列表值[重复]
【发布时间】:2019-09-30 14:40:06
【问题描述】:

我似乎无法在带有列表的 pandas 数据框中重新分配值。 Python 想要遍历列表,但我认为它不会这样做。例如,如果我有以下内容:

import pandas as pd
val1 = [0, 1, 2]
val2 = [3, 4, 5]
d_list = []
for v1, v2 in zip(val1, val2):
    d_list.append({'val1':v1, 'val2':v2})
df = pd.DataFrame(d_list)
val3 = [6, 7, 8, 9]
df['val3'] = [val3]*len(df)
print df

我得到了我的预期输出:

   val1  val2          val3
0     0     3  [6, 7, 8, 9]
1     1     4  [6, 7, 8, 9]
2     2     5  [6, 7, 8, 9]

现在我想重新分配val3 中的值:

df.loc[0, 'val3'] = [11, 12, 13, 14]

我收到以下错误:

raise ValueError('Must have equal len keys and value '
ValueError: Must have equal len keys and value when setting with an iterable

我在这里做错了什么?

【问题讨论】:

  • 试试df.at[0, 'val3'] = [11, 12, 13, 14]

标签: python pandas numpy


【解决方案1】:

你要找的是df.at

试试:

df.at[0, 'val3'] = [11, 12, 13, 14] 

来自文档:

与 loc 类似,两者都提供基于标签的查找。如果您只需要在 DataFrame 或 Series 中获取或设置单个值,请使用 at

http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.at.html

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 2018-07-26
    • 2021-10-28
    • 2020-10-31
    • 2016-10-18
    • 2016-11-16
    • 2020-04-13
    • 2019-05-25
    • 1970-01-01
    相关资源
    最近更新 更多