Я читаю данные с нескольких фреймов. Поскольку индексация и входные данные разные, мне нужно повторить сопряжение и анализ. Мне нужны конкретные выходные данные. Это подталкивает меня к копированию вставки и повторению кода.
Существует ли быстрый способ обращения к нескольким фреймам данных для проведения одного и того же анализа?
DF1= pd.read_csv('DF1 Price.csv')
DF2= pd.read_csv('DF2 Price.csv')
DF3= pd.read_csv('DF3 Price.csv') # These CSV's contain main prices
DF1['ParentPrice'] = FamPrices ['Price1'] # These CSV's contain second prices
DF2['ParentPrice'] = FamPrices ['Price2']
DF3['ParentPrice'] = FamPrices ['Price3']
DF1['Difference'] = DF1['ParentPrice'] - DF1['Price'] # Price difference is the output
DF2['Difference'] = DF2['ParentPrice'] - DF2['Price']
DF3['Difference'] = DF3['ParentPrice'] - DF3['Price']```
2 ответа
Можно параметризовать строки с помощью f-строк, доступных в python> = 3.6. В строке f можно вставить строковое представление значения переменной внутри строки, как в:
>> a=3
>> s=f"{a} is larger than 11"
>> print(s)
3 is larger than 1!
Ваш код станет:
list_of_DF = []
for symbol in ["1", "2", "3"]:
df = pd.read_csv(f"DF{symbol} Price.csv")
df['ParentPrice'] = FamPrices [f'Price{symbol}']
df['Difference'] = df['ParentPrice'] - df['Price']
list_of_DF.append(df)
Тогда DF1 будет list_of_DF [0] и так далее.
Как я уже говорил, этот ответ действителен, только если вы используете Python 3.6 или более поздней версии.
Для третьей части плохо предлагаю создать что-то вроде
DFS=[DF1,DF2,DF3]
def create_difference(dataframe):
dataframe['Difference'] = dataframe['ParentPrice'] - dataframe['Price']
for dataframe in DFS:
create_difference(dataframe)
Во-вторых, нет такого супер-удобного и короткого пути, о котором я мог бы подумать, разве что
for i in range len(DFS) :
DFS[i]['ParentPrice'] = FamPrices [f'Price{i}']
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.