Без минимального рабочего примера сложно дать вам четкие рекомендации, но я думаю, что вы ищете .loc
pd.DataFrame. Я бы порекомендовал вам сделать следующее:
- Выбор строк с
.loc
лучше работает в вашем случае, если даты сначала преобразуются в дату и время, поэтому первый шаг - сделать это преобразование как:
# Pandas is quite smart about guessing date format. If this fails, please check the
# documentation https://docs.python.org/3/library/datetime.html to learn more about
# format strings.
df['date'] = pd.to_datetime(df['date'])
# Make this the index of your data frame.
df.set_index('date', inplace=True)
- Неясно, как вы собираетесь использовать условные выражения / каково содержимое других ваших столбцов. Используя
.loc
, это довольно просто
# At Feb 1, 2020, add a value to columns 'var'.
df.loc['2020-02-01', 'var'] = 0.727868
- Это также может использоваться для диапазонов:
# Assuming you have a second `df2` which as a datetime columns 'date' with the
# data you wish to add to `df`. This will only work if all df2['date'] are found
# in df.index. You can workout the logic for your case.
df.loc[df2['date'], 'var2'] = df2['vals']
Если logi c равен до сложного, а фрейм данных не слишком велик, итерация с .iterrows
может быть проще, особенно если вы начинаете с Python.
for idx, row in df.iterrows():
if idx in list_of_other_dates:
df.loc[i, 'var'] = (some code here)
Пожалуйста, поясните немного свою проблему, и вы получите лучшие ответы . Не забудьте проверить документацию .