【问题标题】:How do I drop a column from multiple pandas dataframes using a loop? [duplicate]如何使用循环从多个熊猫数据框中删除一列? [复制]
【发布时间】:2019-10-10 04:55:15
【问题描述】:

我在一个列表 CGdfs 中有多个数据框。

CGdfs = [CGdf_2002, CGdf_2003, CGdf_2004, CGdf_2005, CGdf_2006, CGdf_2007, CGdf_2008, CGdf_2009, CGdf_2010, CGdf_2011, CGdf_2012, CGdf_2013, CGdf_2014, CGdf_2015, CGdf_2016, CGdf_2017, CGdf_2018]

我想使用循环从所有这些数据框中删除一个名为“Plot”的列。 我该怎么做?

我试过了,还是不行

for df in CGdfs:
   df = df.drop('Plot', axis =1)

【问题讨论】:

  • 请解释为什么它不起作用。你有错误吗?发布回溯
  • 你试过del df["Plot"]吗?
  • @cs95 只是问-> df.pop('col_name') for 循环怎么样?
  • @anky_91 它完成了上帝的工作——它删除了一个列但也返回了它。问题是您一次只能弹出一个,因此如果您想删除多列,则会受到限制。

标签: python pandas


【解决方案1】:

这应该可行:

for df in CGdfs:
    df.drop(columns = ['Plot'], inplace= True)

【讨论】:

  • 两者都是错误的。你能找出原因吗?
  • 第一个似乎没有将新的 df(modified) 重新分配给列表中的 df。第二个似乎有效(经过测试)
  • 是的!从您的帖子中删除了不正确的答案。
【解决方案2】:

我认为问题在于它没有将 drop 应用于原始 DataFrame 对象。试试:

for df in CGdfs:
    df.drop('Plot', axis=1, inplace=True)

当您检查 CGdfs 的元素时,应删除“Plot”列。

【讨论】:

    猜你喜欢
    • 2020-09-15
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2016-09-15
    • 2017-11-07
    • 1970-01-01
    • 2016-11-12
    相关资源
    最近更新 更多