我是熊猫和蟒蛇的新手。
我的数据帧如下所示:
Search query Impressions Clicks
iPhone X 2019 10000 50
iPhoneX 2019 15 64
iPhone 11 60 87
Nokia 3310 444 61
Nokia 3310 best phone 1 30
我正在尝试创建另一名为Word
的列,该列将具有每个Search query
行中每个单词的值。
例:
Search query Impressions Clicks Word
iPhone X 2019 10000 50 iPhone
iPhone X 2019 10000 50 X
iPhone X 2019 10000 50 2019
iPhoneX 2019 15 64 iPhoneX
iPhoneX 2019 15 64 2019
iPhone 11 60 87 iPhone
iPhone 11 60 87 11
Nokia 3310 444 61 Nokia
Nokia 3310 444 61 3310
Nokia 3310 best phone 1 30 Nokia
Nokia 3310 best phone 1 30 3310
Nokia 3310 best phone 1 30 best
Nokia 3310 best phone 1 30 phone
因此,每行乘以第Search query
列中的字符串数,第Word
列将保存列中的每个字符串Search query
。
我尝试过:
def f(x):
x = x.split(' ')
y = len(x)
# at this point I am not sure how I would apply the multiplication and assign each word in 'Word' column once every word
感谢您的建议。
创建新列Word
由拆分值填充并DataFrame.explode
它们,最后将值转换为默认索引:
df = df.assign(Word = df['Search query'].str.split()).explode('Word').reset_index(drop=True)
print (df)
Search query Impressions Clicks Word
0 iPhone X 2019 10000 50 iPhone
1 iPhone X 2019 10000 50 X
2 iPhone X 2019 10000 50 2019
3 iPhoneX 2019 15 64 iPhoneX
4 iPhoneX 2019 15 64 2019
5 iPhone 11 60 87 iPhone
6 iPhone 11 60 87 11
7 Nokia 3310 444 61 Nokia
8 Nokia 3310 444 61 3310
9 Nokia 3310 best phone 1 30 Nokia
10 Nokia 3310 best phone 1 30 3310
11 Nokia 3310 best phone 1 30 best
12 Nokia 3310 best phone 1 30 phone