Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python3中扩展两个excel单元格之间的范围,并将结果添加到新列中?_Python_Excel - Fatal编程技术网

如何在Python3中扩展两个excel单元格之间的范围,并将结果添加到新列中?

如何在Python3中扩展两个excel单元格之间的范围,并将结果添加到新列中?,python,excel,Python,Excel,我想使用Python3.4来比较列。 我有两列a和b 如果A=B,则在C列中打印A。 如果B>A,打印A和B之间的所有数字,包括C列中的A和B。 随后比较的行将在上一次测试的结果之后打印在C列中 感谢您的帮助。我的问题措辞必须是关闭的,因为我确信以前已经这样做过,但我只是在这里或其他地方找不到它。注意到,请尝试在pandas中应用函数 import pandas as pd df = pd.read_excel("somefile.xlsx") df['c'] = df.apply(lambda

我想使用Python3.4来比较列。 我有两列a和b

如果A=B,则在C列中打印A。 如果B>A,打印A和B之间的所有数字,包括C列中的A和B。 随后比较的行将在上一次测试的结果之后打印在C列中

感谢您的帮助。我的问题措辞必须是关闭的,因为我确信以前已经这样做过,但我只是在这里或其他地方找不到它。

注意到,请尝试在pandas中应用函数

import pandas as pd
df = pd.read_excel("somefile.xlsx")
df['c'] = df.apply(lambda r: list(range(r['a'], r['b']+1)), axis=1)
使现代化 如果要添加行,用pandas编写可能会变得复杂。如果您不太关心速度和内存,那么经典的python风格似乎更容易理解

ary = []
for i,r in df.iterrows():
  for j in range(r['a'], r['b']+1):
    ary.append( (r['a'], r['b'], j) )
df = pd.DataFrame(ary, columns = ['a','b','c'])

不确定您想要的输出是什么,但是df.applylambda x:rangex['a'],x['b']+1,axis=1应该会给您一个好的开始。col a col b col cSo您需要了解如何安装pandas以及如何使用pandas将Excel工作表读入Python。但是一旦你有了它,你就可以运行df['c']=df.applylambda x:rangex['a'],x['b']+1,axis=1,其中df是数据的名称。谢谢你们,这扩展了范围。是否有办法垂直打印结果,而不是在同一单元格内打印?列c=[4,5,6]位中的结果我希望它是第1列c=4,第2列c=5,第3列c=6等等。我想也许我可以尝试str.split或df.stack,但它们都没有像我希望的那样工作。我爱你:D。这太完美了。非常感谢这里是最后的迭代,基于大家的帮助。我们的想法是在excel中扩展两列之间的范围,并创建结果的第三列