【发布时间】:2020-08-04 09:36:16
【问题描述】:
我无法将以下 excel 公式转换为 Python 3 代码:
=IF(B1="";A1&D1;A1&VLOOKUP(B1;table_2!table_2_col_A:table_2_col_B;2;FALSE))
我尝试了以下方法,但它不会产生与原始 excel 文件列中相同的结果:
excel_df['new_col)'] = ''
for i, j, k in zip(excel_df['B'],
excel_df['A'],
excel_df['D']):
for v, x in zip(table_2['A'],
table_2['B']):
if not pd.isnull(i):
if i in v:
excel_df.at[i, 'new_col'] = j + x
elif pd.isnull(i):
excel_df.at[i, 'new_col'] = j + k
很抱歉,我无法生成示例数据供您尝试,也无法在此处分享原始数据。如果您能提供任何指示或更正以更好地将这个 excel 公式适应 python,我将不胜感激。
非常感谢您
【问题讨论】:
-
除非您提供一些示例数据和预期的输出,否则这可能不会收到有用的答案。示例数据不一定是您的实际数据,但可以组成以代表您的问题。
-
使用
np.where--np.where(conditional,true-value,false-value)如果你正在做一个vlookup,那么你就需要做一个合并。但正如 Erfan 所说,只需为您的两个表各放几行即可。 -
嗨@Datanovice,您能否提供一个使用您建议的架构的示例骨架代码?
-
很高兴只要您提供一些模拟您的问题的数据。
-
我真的很抱歉,但我不能。我正在使用具有大量不同案例的大型 excel 文件,我需要大量时间来浏览所有数据并提供最小的可重现示例。您的答案不需要 100% 正确,如果它只是为我指明正确的方向,我会很高兴
标签: python python-3.x excel pandas loops