python - 如何使用 pandas 将一列列表转换为一组?

标签 python pandas list set

我下面有一个数据框,其中“样本”列包含每行的列表。我想把这些变成一套。我的预期输出将是“样本”列中的每一行不包含任何重复项,因为它已变成一组。有什么想法吗?

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 - 如何使用 pandas 将一列列表转换为一组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58203780/

相关文章:

python - 用于网络抓取的旋转代理

Python Pandas 比较两个数据框然后编辑

python - 计算按其他列的唯一值分组的唯一值百分比

Python 日志记录模块在已安装的 Windows 服务中不起作用

python - ODBC中的错误,但Hive的CLI中没有错误?

python - 如何有效地比较具有相同 x 和 y 值的所有行的 z 值?

python - 基于内容重叠合并子列表,python 3

java - 删除在第一个索引处停止的索引方法(java字符串数组)

python - 如何在 python 中的一组字符后创建一个新行

python - 在 Python 中使用冒号对列表进行切片时,是否可以使用大于列表长度的停止大小?