python - 计算列表项并存储在与列表项对应的数据框列中
问题描述
我正在尝试遍历 Pandas Dataframe 中的系列,并将列表项的计数存储在与每一行的项目同名的另一列中。该系列就像一个列表列表,所以基本上我试图将该列表列表转换为一个单热向量,但该向量中的每个项目都是一列。可以出现的项目数量有限。
以下是我的方法。它工作得很好,但它的速度很慢。我在此处发布此内容是为了尝试找到一种更好、更“pythonic”的方法来做到这一点。
N_Series = len(df.Category)
for i in range(N_Series):
itemList = df.Category[i]
N_List = len(itemList)
for k,v in Counter(itemList).items():
df[k][i] = v/N_List
以下是一个示例,Category 列是一个列表,可以看到相应的 one-hot 列保存列表中的项目数/项目数。
提前致谢!
解决方案
让我们试试explode
+corsstab
s=df.Category.explode()
s=pd.crosstab(s.index,s,normalize='index')
df=df.join(s)
推荐阅读
- iis - IIS 8.5 如何使用 URL 重写设置反向代理
- python - 如何从堆叠中取出我的数据
- javascript - vue路由器强制popstate
- iot - 如何使用来自 IBM watson 设备的 HTTP API 提取事件数据
- python - 根据列中的条件从数据框中选择值的最佳方法?
- php - htaccess 多个重写规则多个子文件夹
- python - 使用 Plots.jl 中的 pyplot。如何使多个子图只有一个 colobar?
- r - 当 R 中的绘图窗格放大时,绘图的图例会退化
- python - 嵌套 tqdm 输出到新行
- .net - 如何使用 Linq2db 进行全文搜索?