python - 来自包含列表的两列的 Pandas 元组列表

标签 python pandas

<分区>

我有一个像这样的 Pandas 数据框,其中 device_namesdevice_models 都在列表中

user_id, device_names, device_models
1, ["dev_1", "dev_2"], ["mod_1", "mod_2"]
2, ["dev_1", "dev_5"], ["mod_1", "mod_5"]

我想要两个组合这两列并像这样创建另一列

user_id, device_names, device_models, dev_mod
1, ["dev_1", "dev_2"], ["mod_1", "mod_2"], [("dev_1", "mod_1"), ("dev_1", "mod_2")]
2, ["dev_1", "dev_5"], ["mod_1", "mod_5"], [("dev_1", "mod_1"), ("dev_5", "mod_5")] 

我尝试过使用普通的 zip ,它适用于普通列表但不适用于 pandas 系列。我怎样才能在 Pandas 中做到这一点?

最佳答案

带压缩的列表理解:

df["dev_mod"] = [list(zip(dev_name, dev_model))
                 for dev_name, dev_model in zip(df.device_names, df.device_models)]

得到

   user_id    device_names   device_models                           dev_mod
0        1  [dev_1, dev_2]  [mod_1, mod_2]  [(dev_1, mod_1), (dev_2, mod_2)]
1        2  [dev_1, dev_5]  [mod_1, mod_5]  [(dev_1, mod_1), (dev_5, mod_5)]

第二个 zip 将两列粘合在一起,第一种转置以获得所需的结果。

关于python - 来自包含列表的两列的 Pandas 元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67403969/

相关文章:

python - findChessboardCorners() 返回的角数组的形状

python - 格式化各行打印的输出?

python - 根据条件分成不同的行

python - 在 Django 中,如何使用请求来确定其 URLconf View 名称?

python - Dataframe 写入 Postgresql 性能不佳

python - 在 Pandas 的列上应用 lambda

python - 寻找行减少矩阵python的解决方案

python - Pandas: `df.dtypes` 的最后一行是 `dtype: object` ,这是什么意思,它是谁的类型?

Python数据框: clean data of one column by comparing values from other columns

python - Pandas 数据帧处理中的关键错误