转换为列表时从数据框中删除某些列

Posted

技术标签:

【中文标题】转换为列表时从数据框中删除某些列【英文标题】:drop certain columns from a dataframe while converting to list 【发布时间】:2022-01-23 18:18:17 【问题描述】:

我有一个示例数据框:

    Id    Age  Name
0   0110  23   Max
1   2009  56   Stan
2   1167  25   Joy
3   8878  44   Lee

目前我正在使用的输入数据帧

dfnew = df.drop(df.columns.difference(['Id']),1)

在数据框中删除不需要的列(即 Id)并继续。这是正确的,但有两个数据框。

有什么办法可以优化吗?

在将数据框转换为列表时,我们可以在列表中只包含年龄和姓名,而忽略 Id like lst = [[23,Max],[56,stan]....]

请在这方面提供帮助。谢谢。

【问题讨论】:

df[["Age", "Name"]].apply(list, axis=1).tolist()df.drop("Id", axis=1).apply(list, axis=1).tolist()? @d.b 成功了!谢谢! 【参考方案1】:

您可以使用 drop 不需要的列,转换为 numpy 数组并转换为列表。这比apply(list, axis=1) 快。

lst = df.drop(columns='Id').to_numpy().tolist()

输出:

[[23, 'Max'], [56, 'Stan'], [25, 'Joy'], [44, 'Lee']]

【讨论】:

是的,但问题是我不想创建另一个 df。想要保留 df 的原创性,但仅在转换为列表期间我希望删除“Id”。谢谢 @devPy 所以只需将列表分配给一个新变量,对吧?

以上是关于转换为列表时从数据框中删除某些列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用列列表从数据框中删除多列[重复]

Python Pandas:如何从包含列表中值的数据框中删除所有列?

从 pandas 数据框中删除具有空列表的行

根据条件从 spark 数据框中删除行

删除熊猫数据框中每一行的标点符号[重复]

键入文本时在运行时从文本框中删除空格