嗨,我在pandas数据框中有一个专栏网站,其值类似于expedia,MMT,Booking.com等
我想在数据框中添加两列。
1)My_Site,其网站栏值应为“ Expedia”和“ MMT” 2)另一列Cmp_site,具有除新建My_site列的值之外的site列的所有值。
例如
webSite列具有值expedia,MMT,Booking.com
现在“我的网站”列应具有expedia,MMT 和Cmp_site应该具有Booking.com
请帮助!
答案 0 :(得分:0)
如果我理解正确,那么您将拥有一个这样的数据框:
My_Site
0 Expedia
1 MakeMyTrip
2 Booking
您现在希望每个站点旁边都有其他站点以进行比较。为此,我将使用itertools
来生成组合。我将组合限制为2,因为这就是我们想要的。
import itertools
newList = []
for subset in itertools.combinations(siteList, 2):
newList.append(subset)
newList = [list(row) for row in newList]
此时,您的newList如下:
[['Expedia', 'MakeMyTrip'], ['Expedia', 'Booking'], ['MakeMyTrip', 'Booking']]
现在通过将它们分配给pandas
并将list
用作list
列,将它们分配到dataframe
数据帧:
mySite = []
cmpSite = []
for i in range(len(level1)):
mySite.append(newList[i][0])
cmpSite.append(newList[i][1])
newDf = pd.DataFrame()
newDf['My_Site'] = mySite
newDf['Cmp_Site'] = cmpSite
最终输出:
Out[90]:
My_Site Cmp_Site
0 Expedia MakeMyTrip
1 Expedia Booking
2 MakeMyTrip Booking
您现在可以为每个站点组合以与其他站点进行比较。