使用for循环重命名熊猫数据框列

滚动表达式

我不确定这是否是愚蠢的方法,但是我有几个数据框,所有数据框都有相同的列。我需要重命名每个列中的列以反映每个数据框的名称(此后,我将对所有这些列进行外部合并)。

比方说,数据帧被称为df1df2并且df3,每个包含列namedatecount

我想每一列重命名df1name_df1date_df1count_df1

我编写了一个函数来重命名列,因此:

df_list=[df1, df2, df3]

def rename_cols():
    col_name="name"+suffix
    col_count="count"+suffix
    col_date="date"+suffix

for x in df_list:
    if x['name'].tail(1).item() == df1['name'].tail(1).item():
        suffix="_"+"df1"
        rename_cols()
        continue
    elif x['name'].tail(1).item() == df2['name'].tail(1).item():
        suffix="_"+"df2"
        rename_cols()
        continue
    else:
        suffix="_"+"df3"
        rename_cols()

    col_names=[col_name,col_date,col_count]
    x.columns=col_names

不幸的是,我收到以下错误: KeyError: 'name'

我真的很难弄清楚为什么会这样。df1的列(的第一个数据帧df_list)被重命名。其他所有内容都保持不变...我是在搞乱基本语法(可能是),还是我对事情应该如何工作有根本的误解?

据我所知,列表中的第一个数据帧将不止一次地迭代-但是为什么会这样呢?

c

我想您可以使用以下更简单的方法来实现此目的:

df_list=[df1, df2, df3]
for i, df in enumerate(df_list, 1):
    df.columns = [col_name+'_df{}'.format(i) for col_name in df.columns]

如果您的DataFrame具有漂亮的名称,则可以尝试:

df_names=('Home', 'Work', 'Park')
for df_name in df_names:
    df = globals()[df_name]
    df.columns = [col_name+'_{}'.format(df_name) for col_name in df.columns]

或者,您可以通过查找globals()(或locals()获取每个变量的名称

df_list = [Home, Work, Park]
for df in df_list:
    name = [k for k, v in globals().items() if id(v) == id(df) and k[0] != '_'][0]
    df.columns = [col_name+'_{}'.format(name) for col_name in df.columns]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用其他数据框重命名熊猫中的列

来自分类Dev

R - 使用嵌套循环重命名多个数据框中的多个列

来自分类Dev

重命名多索引数据框熊猫

来自分类Dev

在多个数据框中使用重命名功能遍历大熊猫数据框的字典以重命名列

来自分类Dev

使用值字典重命名Pandas数据框中的列

来自分类Dev

使用pandas重命名数据框的列中的元素

来自分类Dev

熊猫数据框列命名

来自分类Dev

无法重命名数据框的列

来自分类Dev

在某些情况下如何重命名熊猫数据框中的列值

来自分类Dev

如何遍历熊猫数据框并重命名所有列?

来自分类Dev

用另一个数据框熊猫中的每两列重命名

来自分类Dev

如何创建函数或循环来重命名24个数据框的列?

来自分类Dev

如何重命名熊猫数据框中的条目?

来自分类Dev

熊猫数据框如何删除和重命名列

来自分类Dev

循环以重命名R数据框中的字段

来自分类Dev

循环以重命名R数据框中的字段

来自分类Dev

使用循环调用多个熊猫数据框列

来自分类Dev

具有多级列的熊猫数据框:重命名特定级别的列,使其与另一级相同

来自分类Dev

使用列本身中的文本重命名数据框列

来自分类Dev

使用“算术级数”重命名数据框中的列

来自分类Dev

如何使用其他名称重命名Pandas数据框列表的列

来自分类Dev

如何使用dplyr管道在指定行之后重命名数据框中的所有列

来自分类Dev

使用正则表达式和字典重命名数据框列

来自分类Dev

重命名dplyr中数据框的所有列,而无需使用rename()

来自分类Dev

如何使用循环形式的r重命名多个数据集中的列的子集

来自分类Dev

使用Pandas数据框中的分类数据重命名变量

来自分类Dev

重命名数据框

来自分类Dev

使用与另一个数据框的匹配来重命名数据框列表中的列

来自分类常见问题

重命名数据框的中间包含数字的列

Related 相关文章

  1. 1

    使用其他数据框重命名熊猫中的列

  2. 2

    R - 使用嵌套循环重命名多个数据框中的多个列

  3. 3

    重命名多索引数据框熊猫

  4. 4

    在多个数据框中使用重命名功能遍历大熊猫数据框的字典以重命名列

  5. 5

    使用值字典重命名Pandas数据框中的列

  6. 6

    使用pandas重命名数据框的列中的元素

  7. 7

    熊猫数据框列命名

  8. 8

    无法重命名数据框的列

  9. 9

    在某些情况下如何重命名熊猫数据框中的列值

  10. 10

    如何遍历熊猫数据框并重命名所有列?

  11. 11

    用另一个数据框熊猫中的每两列重命名

  12. 12

    如何创建函数或循环来重命名24个数据框的列?

  13. 13

    如何重命名熊猫数据框中的条目?

  14. 14

    熊猫数据框如何删除和重命名列

  15. 15

    循环以重命名R数据框中的字段

  16. 16

    循环以重命名R数据框中的字段

  17. 17

    使用循环调用多个熊猫数据框列

  18. 18

    具有多级列的熊猫数据框:重命名特定级别的列,使其与另一级相同

  19. 19

    使用列本身中的文本重命名数据框列

  20. 20

    使用“算术级数”重命名数据框中的列

  21. 21

    如何使用其他名称重命名Pandas数据框列表的列

  22. 22

    如何使用dplyr管道在指定行之后重命名数据框中的所有列

  23. 23

    使用正则表达式和字典重命名数据框列

  24. 24

    重命名dplyr中数据框的所有列,而无需使用rename()

  25. 25

    如何使用循环形式的r重命名多个数据集中的列的子集

  26. 26

    使用Pandas数据框中的分类数据重命名变量

  27. 27

    重命名数据框

  28. 28

    使用与另一个数据框的匹配来重命名数据框列表中的列

  29. 29

    重命名数据框的中间包含数字的列

热门标签

归档