加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-有没有一种方法可以将新列添加到pandas数据框,并将新列的

发布时间:2020-12-17 17:36:32 所属栏目:Python 来源:网络整理
导读:给定一个熊猫数据框: 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 我想添

给定一个熊猫数据框:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读