所以我有一个带有一些奇怪的后缀的数据帧,比如映射到某些代码的_a或_b,我想知道如何根据后缀添加前缀,并删除后缀以便于理解。
即:
red_a blue_a green_b
....
....至
A red A blue B green
....
....我试过了
for col in df.columns:
if col.endswith('_a'):
batch_match[col].replace('_a', '')
batch_match[col].add_prefix('A ')
else:
batch_match[col].add_prefix('B ')但它返回的df为NaN。
发布于 2019-05-10 06:28:49
您可以将pandas.DataFrame.rename与客户映射程序一起使用
df = pd.DataFrame(
{"red_a": ['a', 'b', 'c'], "blue_a": [1, 2, 3], 'green_b': ['x', 'y', 'z']}
)
def renamer(col):
if any(col.endswith(suffix) for suffix in ['_a', '_b']):
prefix = col[-1] # use last char as prefix
return prefix.upper() + " " + col[:-2] # add prefix and strip last 2 chars
else:
return col
df = df.rename(mapper=renamer, axis='columns')
print(df)
# A blue B green A red
#0 1 x a
#1 2 y b
#2 3 z c发布于 2019-05-10 06:36:43
我要做的是
df.columns=df.columns.str.split('_').map(lambda x : '{} {}'.format(x[1].upper(),x[0]))
df
Out[512]:
A red A blue B green
0 a 1 x
1 b 2 y
2 c 3 zhttps://stackoverflow.com/questions/56068317
复制相似问题