我正在使用python
来自动化工作中的一些过程。我的最终产品必须是excel格式(公式必须在那里,所有东西都必须是可追踪的),所以我在pandas数据框架上工作,然后将结果导出到.xlsx
。你知道吗
我要做的是创建一个如下所示的数据帧:
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)。数据帧大约有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)"
有人对怎么做有什么建议吗?你知道吗
谢谢!你知道吗
尝试矢量化字符串连接:
对于其余的列,将执行类似的过程:
相关问题 更多 >
编程相关推荐