我有一個帶有物件型別列的pandas資料框,它有每個用戶的剖析值,像這樣:
print(df[profile_values])
1 [
"ab"。
"abc"。
"abcd".
]
1 NaN
3 [
"ab",
"abcd", "abcd".
]
4 NaN
5 [
"ab"
]
...
需要修剪數值或改變資料型別,以便我可以計算單詞,找到所述單詞的分布。像這樣:
單詞計數
ab 3
abc 1
abcd2
...
有什么建議嗎?
編輯:值是字串型別
uj5u.com熱心網友回復:
如果你的資料框架是這樣的:
df = pd.DataFrame([' [
"ab",
"abc",
"abcd"
]', np.nan, ' [
"ab",
"abcd"
]', np.nan, '[
"ab"
]'], columns=["profile_values"] )
有幾個步驟。 將字面意義轉換為字串的串列,explode將把你的一系列串列轉換為一個系列,然后計算重復的值:
from ast import literal_eval
counts = df.dropna()["profile_values"].apply(literal_eval).explode().value_counts()
輸出:
ab 3
abcd 2
abc 1
名稱: profile_values, dtype: int64
uj5u.com熱心網友回復:
我將做三個操作。
我將做三個操作。
我將進行三個操作。
創建一個新的列,將 "profile_values "列的值轉換為一個實際的串列:
df['new_column'/span>] = [eval(x) for x in df['profile_values']
在資料框架外創建一個串列,在一個串列中包含所有的詞:
single_list = [x for y in df['new_column'] for x in y]
使用一個函式來計算串列的頻率,如下所示:
import collections
counter = collections.Counter(single_list)
然后你就有了串列中每個詞的頻率。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/332413.html
標籤:
