Python 将列表设置为数据帧单元格

Python 将列表设置为数据帧单元格,python,pandas,Python,Pandas,我有一个带有DateTimeIndex的数据框,其中有一列: import pandas as pd import numpy as np from datetime import datetime, timedelta date_today = datetime.now() days = pd.date_range(date_today, date_today + timedelta(7), freq='D') np.random.seed(seed=1) data = np.random

我有一个带有
DateTimeIndex
的数据框,其中有一列:

import pandas as pd
import numpy as np
from datetime import datetime, timedelta

date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(7), freq='D')

np.random.seed(seed=1)
data = np.random.randint(1, high=100, size=len(days))
df = pd.DataFrame({'Date': days, 'Col1': data})
df = df.set_index('Date')
print(df)
输出:

                            Col1
Date
2020-08-04 18:10:47.730173    38
2020-08-05 18:10:47.730173    13
2020-08-06 18:10:47.730173    73
2020-08-07 18:10:47.730173    10
2020-08-08 18:10:47.730173    76
2020-08-09 18:10:47.730173     6
2020-08-10 18:10:47.730173    80
2020-08-11 18:10:47.730173    65
我想添加一个名为Col2的列,其中包含NaN值,并仅用列表填充一些值。 以下是我的尝试:

# The code below doesn't work as intended
df['Col2'] = np.nan
df['Col2'] = df['Col2'].astype(object)

# Fails with: ValueError: Must have equal len keys and value when setting with an iterable
df.iloc[4, df.columns.get_loc('Col2')] = [1.1, 2.2]
我的目的是得到这样的东西:

                            Col1 Col2
Date
2020-08-04 18:10:47.730173    38  NaN
2020-08-05 18:10:47.730173    13  NaN
2020-08-06 18:10:47.730173    73  NaN
2020-08-07 18:10:47.730173    10  NaN
2020-08-08 18:10:47.730173    76  [1.1, 2.2]
2020-08-09 18:10:47.730173     6  NaN
2020-08-10 18:10:47.730173    80  NaN
2020-08-11 18:10:47.730173    65  NaN
如何将特定单元格值设置为列表?我想要熊猫来存储列表,不管它是以什么格式存储的,只要我以后可以检索它


其目的是可读代码。性能不是一个因素,因为此操作会执行几次。

我的反应不是。Pandas和列表值单元格通常运行得不太好,更不用说修改数据帧中的单个单元格也不理想。你想在这里实现什么?设置操作很少,比如最多10个赋值,我的目的不是性能,但是有一个更可读的代码。添加值的标准是什么?试试
np。选择
你可以指定所有条件,然后一次点击它们。看我的反应是不。Pandas和列表值单元格通常运行得不太好,更不用说修改数据帧中的单个单元格也不理想。你想在这里实现什么?设置操作很少,比如最多10个赋值,我的目的不是性能,但是有一个更可读的代码。添加值的标准是什么?尝试
np。选择
您可以指定所有条件并一次性点击它们。请参见