List 遍历数据帧列表
我目前有一系列18个数据帧(每个数据帧代表不同的年份),由3列和不同数量的行组成,代表氨基酸残基位置的归一化互信息分数,如: 第一年 我希望遍历这个数据帧列表,并删除互信息分数小于0.50的行,以及与自身配对的余数的互信息分数。以下是我到目前为止所做的尝试:List 遍历数据帧列表,list,pandas,List,Pandas,我目前有一系列18个数据帧(每个数据帧代表不同的年份),由3列和不同数量的行组成,代表氨基酸残基位置的归一化互信息分数,如: 第一年 我希望遍历这个数据帧列表,并删除互信息分数小于0.50的行,以及与自身配对的余数的互信息分数。以下是我到目前为止所做的尝试: MIs = [MI_95,MI_96,MI_97,MI_98,MI_99,MI_00,MI_01,MI_02,MI_03,MI_04,MI_05,MI_06,MI_07,MI_08,MI_09,MI_10,MI_11,MI_12,MI_13
MIs = [MI_95,MI_96,MI_97,MI_98,MI_99,MI_00,MI_01,MI_02,MI_03,MI_04,MI_05,MI_06,MI_07,MI_08,MI_09,MI_10,MI_11,MI_12,MI_13]
for MI in MIs:
p = []
for q in range(0, len(MI)):
if MI[0][q] != MI[1][q]:
if MI[2][q] > 0.5:
p.append([MI[0][q],MI[1][q],MI[2][q]])
MI = pd.DataFrame(p)
然而,这只是修剪MIs中的第一项。有人能帮我找到一种方法来遍历整个列表并修剪每个数据帧吗
谢谢尽可能避免循环。与同时处理所有数据的“矢量化”方法相比,它们的速度要慢得多,而且通常不太容易读取。这里有一条路
In [17]: self_paired = df['Pos1'] == df['Pos2']
In [18]: low_MI = df['MI_Score'] < 0.50
In [19]: df[~(low_MI | self_paired)]
Out[19]:
Pos1 Pos2 MI_Score
1 40 44 0.53
4 44 70 0.90
[2 rows x 3 columns]
[17]中的self_paired=df['Pos1']==df['Pos2']
在[18]中:low_MI=df['MI_Score']<0.50
In[19]:df[~(low|MI | self|u paired)]
出[19]:
Pos1 Pos2米卢分数
1 40 44 0.53
4 44 70 0.90
[2行x 3列]
In [17]: self_paired = df['Pos1'] == df['Pos2']
In [18]: low_MI = df['MI_Score'] < 0.50
In [19]: df[~(low_MI | self_paired)]
Out[19]:
Pos1 Pos2 MI_Score
1 40 44 0.53
4 44 70 0.90
[2 rows x 3 columns]