Установите список в ячейку Dataframe - PullRequest
1 голос
/ 04 августа 2020

У меня есть DataFrame с 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

Как мне установить определенное значение ячейки c в список? Я хочу, чтобы pandas сохранял список, неважно, в каком формате он хранится, если я смогу получить его позже.

Намерение - это читаемый код. Производительность не имеет значения, так как эта операция будет выполняться несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...