您会了解,我对熊猫还很陌生,但我发现自己陷入了以下问题。 可以说我拥有以下Facebook数据(为方便起见,我将它们完全随机化了):
Ad Set Name Impresions Link Clicks
0 253-Page.Visitors.10.Days 100 3
1 254-Cart.Abandoners.10.Days 300 9
2 253-Page.Visitors.10.Days 900 27
3 256-LAL.5%.Add.to.Cart 2,700 81
4 256-LAL.5%.Freq.Visits 8,100 243
5 254-Cart.Abandoners.10.Days 24,300 729
6 254-Cart.Abandoners.10.Days 72,900 2,187
现在我要做的是创建一个名为“受众群体”的新列,并根据以下三个条件填充它:
这是我尝试执行的操作:
for i in data['Ad Set Name']:
if 'Page.Visitors' in i:
data.loc[i,'audiience'] = 'Page Visitors'
elif 'Cart.Abandoners' in i:
data.loc[i,'audience'] = 'Cart Abandoners'
else:
data.loc[i,'audience'] = 'Lookalikes'
data.head()
但是我返回的列充满了NaN。
任何帮助将不胜感激!
答案 0 :(得分:0)
您需要以下内容: 首先,您需要导入numpy:
import numpy as np
然后将列受众群体设置为nans udn,以这种方式填充您的数据
df['audiience'] =np.nan
df.loc[df[df['Ad Set Name'].str.contains('Page.Visitors', regex=False)==True].index, 'audiience'] = 'Page Visitors'
df.loc[df[df['Ad Set Name'].str.contains('Cart.Abandoners', regex=False)==True].index, 'audiience'] = 'Cart Abandoners'
df.loc[df[df['Ad Set Name'].str.contains('LAL', regex=False)==True].index, 'audiience'] = 'Lookalikes'
这将为您提供以下数据框:
Ad Set Name Impresions Link Clicks audiience
0 253-Page.Visitors.10.Days 100 3 Page Visitors
1 254-Cart.Abandoners.10.Days 300 9 Cart Abandoners
2 253-Page.Visitors.10.Days 900 27 Page Visitors
3 256-LAL.5%.Add.to.Cart 2700 81 Lookalikes
4 256-LAL.5%.Freq.Visits 8100 243 Lookalikes
5 254-Cart.Abandoners.10.Days 24300 729 Cart Abandoners
6 254-Cart.Abandoners.10.Days 72900 2187 Cart Abandoners
答案 1 :(得分:0)
我认为您可以执行numpy.select
conditions = [
(df["Ad Set Name"].str.contains("Page.Visitors")),
(df["Ad Set Name"].str.contains("Cart.Abandoners")),
]
choices = ["Page Visitors", "Cart Abandoners"]
df["audience"] = numpy.select(conditions, choices, default="Office - Lookalikes")
答案 2 :(得分:0)
此外,另一位用户最初提供了以下答案,出于某种原因,我现在可以看到该答案已被删除。 这也很好用,对我(我是大熊猫的新手)来说也很容易阅读和理解:
def replace_ad_set(text):
if "Page.Visitors" in text:
return "Page Visitors"
elif 'Cart.Abandoners' in text:
return "Cart Abandoners"
elif "LAL" in text:
return "Lookalikes"
data["audience"] = data["Ad Set Name"].apply(replace_ad_set)
data