我有这样的df:
xx yy
AAsdsd_ss 3 2
AAassa_ss 3 1
CC 4 7
DD 7 6
如果索引str.contain AA和_ss将yy列的值替换为xx以生成以下输出,我想这样做:
xx
AAsdsd_ss 2
AAassa_ss 1
CC 4
DD 7
我该如何实现?
答案 0 :(得分:1)
IIUC:
df.loc[df.index.to_series().str.match('^AA.*_ss$'), 'xx'] = df['yy']
输出:
xx yy
AAsdsd_ss 2 2
AAassa_ss 1 1
CC 4 7
DD 7 6
注意:代码开头AA
和结尾_ss
匹配。如果您只是想在任何地方以任意顺序使用它们,
s = df.index.to_series()
df.loc[s.str.contains('AA') & s.str.contains('_ss'), 'xx'] = df['yy']