python - 如何将一列列表变成带有熊猫的集合?
问题描述
我在下面有一个数据框,其中包含每行的列表的“样本”列。我想把这些变成一套。我的预期输出将是“样本”列中的每一行,因为它已变成一个集合,因此不包含任何重复项。有任何想法吗?
import pandas as pd
import numpy as np
df = pd.DataFrame(
{'trial_num': [1, 2, 3, 1, 2, 3],
'subject': [1, 1, 1, 2, 2, 2],
'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
}
)
预期输出如下:
trial_num subject samples
0 1 1 {0.75, 0.87, -0.54}
1 2 1 {-0.67, 1.5, -0.46}
2 3 1 {0.13, -0.56, -0.11}
3 1 2 {-0.78, 0.48, 1.03}
4 2 2 {0.13, 0.62, -0.14}
5 3 2 {0.61, -0.59, 0.43}
解决方案
IIUC
df['New']=np.where(df.samples=='','',df.samples.map(set))
df
Out[312]:
trial_num subject samples New
0 1 1 [-0.96, -0.3, 1.03] {-0.96, 1.03, -0.3}
1 2 1 [1.24, -0.04, 0.33] {-0.04, 1.24, 0.33}
2 3 1
3 1 2 [-0.46, 0.1, 1.34] {-0.46, 1.34, 0.1}
4 2 2 [-0.8, -0.63, 0.16] {-0.8, -0.63, 0.16}
5 3 2 [0.88, -0.27, -0.72] {0.88, -0.27, -0.72}
推荐阅读
- python-3.x - Pycharm“虚拟环境环境->新环境”
- java - 从方法内的 lambda 返回值
- oracle - Oracle - Utf_file.get_line 未正确读取 utf8 csv 行
- javascript - 如何按键对元素进行分组并使用javascript附加该特定键的值?
- airflow - 安排 DAG 每月运行两天
- r - 在 R / Rmd 中使用参数生成 pdf 时拆分标题行
- php - 如何将函数的结果分配给变量?
- php - PHP:数组和键明智
- php - 如何用php格式化csv输出?
- android - 由于信号(SIGALARM)调用,C 本机 android 应用程序在 Oreo 及更高版本上崩溃