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。选择您可以指定所有条件并一次性点击它们。请参见