【问题标题】:How do. I remove unwanted characters for column names in pandas df?怎么做。我删除了 pandas df 中列名的不需要的字符?
【发布时间】:2019-11-16 02:52:15
【问题描述】:

我有一个数据集,其中一些列名以“USI_”开头:

我尝试使用

df.rename(columns = {col: col.strip('USI_') for col in df.columns

但我得到了一些不同的东西。

我的预期输出应该是像'DIVERSITY_QUESTION_RACE'、'DIVERSITY_QUESTION_GENDER'、'UNCOMMON_AFFILIATION'这样的列

我应该如何修复我的代码? 谢谢!

【问题讨论】:

  • 请发布代码/文本,而不是图片。
  • 这是一个大型数据集,我无法发布所有信息..
  • 确实不应该。但也许试着把你的问题分解成碎片以达到其核心。例如您的 df 原则上看起来像 df = pd.DataFrame({"prefix_A": [1, 2, 3], "prefix_B": [4, 5, 6]}) - 您想通过重命名列来摆脱“prefix_”(例如 df.columns = df.columns.str.lstrip('prefix_'))。

标签: python pandas


【解决方案1】:

我认为您可能希望将数据框的列名作为列表并通过列表进行字符串操作,然后将这些调整后的列名分配回数据框

adj_col_names = []
for name in df.columns:
    adj_col_names.append(name.replace('USI_',''))

df.columns = adj_col_names

【讨论】:

    【解决方案2】:

    尝试使用替换功能

    df.columns = df.columns.str.replace('USI_','')
    

    【讨论】:

    • 我认为您使用lstrip 而不是rstrip 的初始答案也会很好
    • 没错,Rstrip 从字符串末尾剥离,无论哪种方式,您都可以通过使用这些函数的 obe 来避免像第一个问题那样进入循环。
    猜你喜欢
    • 2021-03-13
    • 2022-01-25
    • 2022-11-26
    • 2022-01-12
    • 1970-01-01
    • 2018-08-08
    • 2019-04-25
    • 1970-01-01
    • 2022-12-04
    相关资源
    最近更新 更多