【问题标题】:how to rename a dataframe column which is a digit like name?如何重命名类似于名称的数字的数据框列?
【发布时间】:2019-02-26 10:52:48
【问题描述】:

我有一个数据框列包含 10 个不同的数字。通过pd.get_dummies,我有10 个新列,列名是数字。然后我想用df = df.rename(columns={'0':'topic0'}) 重命名这些编号的列,但失败了。如何将这些列的名称从数字重命名为字符串?

【问题讨论】:

  • df.rename(columns={0: 'topic0'}, inplace=True)?

标签: python pandas dummy-variable


【解决方案1】:

使用DataFrame.add_prefix:

df = pd.DataFrame({'col':[1,5,7,8,3,6,5,8,9,10]})

df1 = pd.get_dummies(df['col']).add_prefix('topic')
print (df1)
   topic1  topic3  topic5  topic6  topic7  topic8  topic9  topic10
0       1       0       0       0       0       0       0        0
1       0       0       1       0       0       0       0        0
2       0       0       0       0       1       0       0        0
3       0       0       0       0       0       1       0        0
4       0       1       0       0       0       0       0        0
5       0       0       0       1       0       0       0        0
6       0       0       1       0       0       0       0        0
7       0       0       0       0       0       1       0        0
8       0       0       0       0       0       0       1        0
9       0       0       0       0       0       0       0        1

【讨论】:

    【解决方案2】:

    您可以使用示例数据框:

    d = {0: [1, 2], 1: [3, 4]}
    df = pd.DataFrame(data=d)
    

    你可以这样做:

    df.rename(index=str, columns={0: "a", 1: "c"})
    

    然后使用此方法重命名其他列。

    简洁:

    for x in range(3):
        df.rename(index=str, columns={x: "topic"+str(x)})
    

    【讨论】:

    • TypeError: 'str' 对象不可调用
    • 那么推荐jezrael的解决方案。
    猜你喜欢
    • 2019-06-24
    • 2019-01-10
    • 2018-01-04
    • 2019-08-19
    • 2022-07-01
    • 2019-09-26
    • 1970-01-01
    • 2020-07-07
    • 2018-12-21
    相关资源
    最近更新 更多