Obs*_*ver 4 python string dataframe pandas
我使用用户ID密钥加入具有相同列/列名称的两个数据帧(a,b),并且在加入时,我必须提供后缀字符,以便创建它.以下是我使用的命令,
a.join(b,how='inner', on='userId',lsuffix="_1")
Run Code Online (Sandbox Code Playgroud)
如果我不使用这个后缀,我会收到错误.但我不希望列名更改,因为这会导致运行其他分析时出现问题.所以我想从结果数据帧的所有列名中删除这个"_1"字符.任何人都可以建议我删除Pandas数据帧中所有列的最后两个字符的有效方法吗?
谢谢
这个片段应该完成工作:
df.columns = pd.Index(map(lambda x : str(x)[:-2], df.columns))
Run Code Online (Sandbox Code Playgroud)
编辑:这是一种更好的方法
df.rename(columns = lambda x : str(x)[:-2])
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我们所做的只是迭代列并应用一些函数.在这种情况下,该函数将某些内容转换为字符串,并将所有内容转换为最后两个字符.
我相信还有其他一些方法可以做到这一点.