Как мне найти соответствующую строку во фрейме данных, используя pandas? - PullRequest
1 голос
/ 10 июля 2020

Я начинающий кодировщик, использую библиотеку pandas в Python. В настоящее время у меня есть код, который читает файл csv, извлеченный с моего рабочего стола, в зависимости от названия, которое я предоставляю программе:

string = input("Enter a ticker: ")
file = string + (".csv")
file_location = 'M:\\A*************\\r*******\\files\\r************.tar\\tmp\\p*********\\' + file

if config.is_file():
    print(file)
    print(file_location)
    df = pd.read_csv(file_location)
    #print(df)
else:
    print("Invalid ticker input")

Это позволяет моему пользователю вводить имя файла и читать файл, используя Pandas. Фрейм данных состоит из 2 столбцов (timestamp, users_holding) и примерно 17 тыс. Строк.

Я хочу, чтобы мой пользователь мог вводить дату:

date = input("Enter a date (YYYY-MM-DD): ")

, и программа вернет строку (s) с соответствующей датой (отметка времени) и пользователями (users_holding). ex /

enter ticker: TSLA
enter a date (YYYY-MM-DD): 2019-08-23
timestamp     users_holding
2019-08-23    15,097

Если кто-нибудь знает, как go об этом, дайте мне знать!

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Дата, заданная пользователем, может быть получена как переменная dt

#Import libraries and and convert user given date to datetime:
from datetime import datetime
dt1 = datetime.strptime("2019-08-23", "%Y-%m-%d")\

#Do similar conversion for your Date column in pandas DF
#Filter all the dates equal to your date
df[ df['date'] == dt1 ] ['timestamp', ' 'users_holding']

в примечании. Пожалуйста, не используйте имена столбцов, такие как «отметка времени». Это может вызвать конфликты в вашем коде. Возьмите за привычку переименовывать такие столбцы во что-нибудь стандартное, например user_time_stamp

0 голосов
/ 10 июля 2020
output_df = df[df['timestamp'] == date][['timestamp', 'users_holding']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...