【问题标题】: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 成功了!谢谢!

标签: python pandas list dataframe


【解决方案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 所以只需将列表分配给一个新变量,对吧?
猜你喜欢
  • 2023-01-14
  • 2019-09-24
  • 2018-09-04
  • 1970-01-01
  • 2016-08-08
  • 2022-01-19
  • 2021-01-03
  • 1970-01-01
  • 2019-01-07
相关资源
最近更新 更多