我正在尝试重新创建一个使用Python的VBA宏。有谁能告诉我我应该用的是哪种表达方式,以便得到低于预期的结果?非常感谢。
档案1:
Product Colour Price
Book NaN 5
Table NaN 10
Chair NaN 7档案2:
Colour
Blue
Red
Green循环后的预期结果(文件1):
Product Colour Price
Book Blue 5
Table Blue 10
Chair Blue 7
Book Red 5
Table Red 10
Chair Red 7
Book Green 5
Table Green 10
Chair Green 7发布于 2018-10-06 18:23:19
首先根据df1的长度复制df2值,然后将list comprehesion和chain用于Colour,如下所示:
from itertools import chain
df = pd.DataFrame({'Product': df1['Product'].values.tolist()*len(df2),
'Price' : df1['Price'].values.tolist()*len(df2),
'Colour' : list(chain.from_iterable([[v]*len(df1) for v in df2['Colour'].values.tolist()]))})
print(df)
Product Price Colour
0 Book 5 Blue
1 Table 10 Blue
2 Chair 7 Blue
3 Book 5 Red
4 Table 10 Red
5 Chair 7 Red
6 Book 5 Green
7 Table 10 Green
8 Chair 7 Green发布于 2018-10-08 13:19:28
您可以使用列表理解,类似于嵌套的for循环:
df = pd.DataFrame([[product, colour, price] for colour in df2['Colour'] \
for product, price in zip(df1['Product'], df1['Price'])],
columns=['Product', 'Colour', 'Price'])
print(df)
Product Colour Price
0 Book Blue 5
1 Table Blue 10
2 Chair Blue 7
3 Book Red 5
4 Table Red 10
5 Chair Red 7
6 Book Green 5
7 Table Green 10
8 Chair Green 7https://stackoverflow.com/questions/52681731
复制相似问题