Я использую python
для автоматизации некоторых процессов на работе.Мой конечный продукт должен быть в формате Excel (формулы должны быть там, и все должно быть отслеживаемо), поэтому я работаю над пандой DataFrame, а затем экспортирую результат в .xlsx
.
Что яВы хотите создать DataFrame для панд, который выглядит следующим образом:
ID Price Quantity Total
0 A =VLOOKUP(A2;'Sheet2'!A:J;6;0) =VLOOKUP(A2;'Sheet2'!A:J;7;0) =B2*C2
1 B =VLOOKUP(A3;'Sheet2'!A:J;6;0) =VLOOKUP(A3;'Sheet2'!A:J;7;0) =B3*C3
2 C =VLOOKUP(A4;'Sheet2'!A:J;6;0) =VLOOKUP(A4;'Sheet2'!A:J;7;0) =B4*C4
3 D =VLOOKUP(A5;'Sheet2'!A:J;6;0) =VLOOKUP(A5;'Sheet2'!A:J;7;0) =B5*C5
4 E =VLOOKUP(A6;'Sheet2'!A:J;6;0) =VLOOKUP(A6;’Sheet2'!A:J;7;0) =B6*C6
Как видно из первой строки, формулы ссылаются на A2, B2 и C2;ссылки на второй ряд A3, B3 и C3;'n' строка ссылки A (n + 2), B (n + 2) и C (n + 2).DataFrame имеет около 3000 строк.
Я хочу сгенерировать этот кадр данных с несколькими строками кода, и я не получил ожидаемого результата.Я, хотя с использованием позиционного форматирования будет делать:
df = pd.DataFrame()
df['temp'] = range(3000)
df['Price'] = """=VLOOKUP(A{0};'Sheet2'!A:J;6;0)""" .format(df.index + 2)
df['Quantity'] = """=VLOOKUP(A{0};'Sheet2'!A:J;7;0)""" .format(df.index + 2)
df['Total'] = """=B{0}*C{0}""" .format(df.index + 2)
df.drop('temp', axis=1, inplace=True)
К сожалению, это не работает.Он возвращает что-то вроде этого:
"=VLOOKUP(ARangeIndex(start=2, stop=3002, step=1);'Sheet2'!A:J;6;0)"
Кто-нибудь есть какие-либо предложения о том, как это сделать?
Спасибо!