给定一个熊猫数据框:
fruit_prices = [('apple',5.99),('orange',4.99),('pear',6.99)]
labels = ['fruit','price']
fruit_prices = pd.DataFrame.from_records(datasets,columns=labels)
fruit_prices
fruit price
apple 5.99
orange 4.99
apple 6.99
我想添加一个新列,例如仅包含两个值,但是以一种方式,这些唯一值中的每一个都会针对原始数据帧中的每个现有行出现.
day = ['wednesday','wednesday','thursday']
预期输出:
fruit price day
apple 5.99 wednesday
apple 5.99 thursday
orange 4.99 wednesday
orange 4.99 thursday
apple 6.99 wednesday
apple 6.99 thursday
我以为也许只有从新的列/系列中获得唯一值后,我才能使用itertools:
from itertools import cycle
dates = cycle(['wednesday','thursday'])
但是我不确定如何将其分配回数据框(以允许复制现有行的方式),或者这是否可行.我还考虑过从该系列创建一个单列数据框并将其合并,但这似乎是circuit回的,而且我也不知道如何去做.
最佳答案
我相信您需要交叉加入:
day = ['wednesday','thursday']
df = fruit_prices.assign(A=1).merge(pd.DataFrame({'day':day,'A':1}),on='A',how='outer')
print (df)
fruit price A day
0 apple 5.99 1 wednesday
1 apple 5.99 1 thursday
2 orange 4.99 1 wednesday
3 orange 4.99 1 thursday
4 pear 6.99 1 wednesday
5 pear 6.99 1 thursday
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。