2024-04-19 23:12:20 发布
网友
所以我被困在如何处理熊猫的数据操作技术上。我在下面有一个数据帧示例,每行有25个计数。 我想按相反的恭维顺序合并列名。你知道吗
AA CC GG AT TT 4 7 0 9 5 3 8 5 5 2 8 6 2 8 1
“AA”和“TT”列是相互的反向恭维,“CC”和“GG”
AA/TT CC/GG AT 9 7 9 5 13 5 9 8 8
如何匹配列名的反向恭维,并将其与另一列的名称合并。你知道吗
注意:我已经有了一个函数来查找字符串的反向恭维
我建议使用pd.concat创建一个新框架:
pd.concat
new_df = pd.concat([df[['AA', 'TT']].sum(1).rename('AA/TT'), df[['CC', 'GG']].sum(1).rename('CC/GG'), df['AT']], axis=1) >>> new_df AA/TT CC/GG AT 0 9 7 9 1 5 13 5 2 9 8 8
一般来说,你可以在一个列表中完成。给出相反的恭维:
reverse_compliments = [['AA','TT'], ['CC','GG']]
在原始的dataframe列中找到那些不是反向恭维的值(这里可能有更好的方法,但这是可行的):
reverse_compliments.append(df.columns.difference( pd.np.array(reverse_compliments) .flatten()))
使用pd.concat和列表理解:
new_df = pd.concat([df[x].sum(1).rename('/'.join(x)) for x in reverse_compliments], axis=1) >>> new_df AA/TT CC/GG AT 0 9 7 9 1 5 13 5 2 9 8 8
我建议使用
pd.concat
创建一个新框架:一般来说,你可以在一个列表中完成。给出相反的恭维:
在原始的dataframe列中找到那些不是反向恭维的值(这里可能有更好的方法,但这是可行的):
使用
pd.concat
和列表理解:相关问题 更多 >
编程相关推荐