Каков правильный синтаксис для поиска номера строки в DataFrame pandas для столбца даты?Python

Программы на Python
Anonymous
Каков правильный синтаксис для поиска номера строки в DataFrame pandas для столбца даты?

Сообщение Anonymous »

Должно быть элегантное решение проблемы, над которой я боролся несколько дней. У меня есть Dataframe, который содержит столбец даты и несколько столбцов тикера (например, «USDCHF», «GBPUSD», «EURUSD»). Я хочу выполнить поиск в столбце «Дата» для заданной даты, чтобы найти номер ее строки, а затем обновить один из столбцов «Тикер» этой строки целым числом.
Я могу получить номер столбца, но как я могу получить номер строки?
У меня есть 1 файл для создания Dataframe, сохраненный в файле .csv, и еще один для обновления этого Dataframe после повторного импорта. это следующим образом:
TestGenMatrix.py:

Код: Выделить всё

from datetime import datetime, timedelta
import pandas as pd

df = pd.DataFrame(columns = ['Date', 'USDCHF', 'GBPUSD', 'EURUSD'])
date = datetime.strptime('2023-01-01', "%Y-%m-%d").date()
x = 0
while x < 20:
df.loc[x, "Date"] = date
date = date + timedelta(days = 1)
x += 1
print(df)
df.to_csv('matrix.csv', encoding = 'utf-8', index = False   )
TestMatrix.py:

Код: Выделить всё

import pandas as pd
from datetime import datetime

df = pd.read_csv('matrix.csv', parse_dates = True)
date = datetime.strptime('2023-01-10', "%Y-%m-%d").date()
print(df.columns)

col_index = df.columns.tolist().index('GBPUSD')  # Get index of column
#row_index = df[df['Date'] == date].index[0]
#row_index = df.index.get_loc(date)
#row_index = df[df['Date'] == date]
row_index = df['Date'] == date
print(row_index)

df.iloc[row_index, col_index] = 27
# df.loc[row_index, "Date"] = 27
df.to_csv('matrix.csv', encoding = 'utf-8', index = True)
Все, что я нашел на этом сайте для поиска даты, кажется, генерирует ошибку той или иной формы. Любая помощь будет очень признательна.

Подробнее здесь: https://stackoverflow.com/questions/788 ... e-for-a-da

Вернуться в «Python»