转换为列表时从数据框中删除某些列
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 所以只需将列表分配给一个新变量,对吧?以上是关于转换为列表时从数据框中删除某些列的主要内容,如果未能解决你的问题,请参考以下文章