【问题标题】:Assigning a dataframe columns to a for loop syntax question [duplicate]将数据框列分配给for循环语法问题[重复]
【发布时间】:2019-01-19 02:12:31
【问题描述】:

我想将数据框的列设置为小写,如下所示:

df.columns = [i.lower() for i in df.columns]

为什么需要括号才能使它起作用?对不起,我对语法有点模糊。有没有比我正在做的更好的选择?

【问题讨论】:

  • 查找列表理解。另一种方法是df.columns.str.lower()
  • 谢谢“列表理解”是我一直在寻找的短语
  • @NimbleTortoise,不过,您不需要对这种情况进行不必要的列表理解。

标签: python pandas


【解决方案1】:

关于这个问题有两个不同的方向:

1) 如何将DataFrame中的列名小写。

这就是你要做的......

>>> df.columns = df.columns.str.lower()

>>> df
  my_col   <-- Column name changed to lowercase
0    ONE
1    Two
2  Three
3   Four

2) 如何将 DataFrame 中的列值小写。 所以,让你的列名变成小写你不需要循环就像下面一样..

>>> df.MY_COL.str.lower()
0      one
1      two
2    three
3     four
Name: MY_COL, dtype: object

>>> df['MY_COL'].str.lower()
0      one
1      two
2    three
3     four
Name: MY_COL, dtype: object

示例数据框:

>>> df
  MY_COL
0    ONE
1    Two
2  Three
3   Four

不过查询[],方括号中的部分称为列表推导式列表推导式提供了一种简洁的方式来创建列表,参考Doc Listcomp

【讨论】:

    【解决方案2】:

    因为 df.columns 是一个列表

    索引(['某事', '其他', ...], dtype='object')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      相关资源
      最近更新 更多