擅长:python、mysql、java
<p>似乎您的示例代码的组成和您使用的df之间可能存在差异。Jon稍微调整的示例和我的脚本适用于您的示例(见图)。你知道吗</p>
<p><a href="https://i.stack.imgur.com/JIyui.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/JIyui.png" alt="enter image description here"/></a></p>
<pre><code># my clunky example
import pandas as pd
csv = '/Users/<USER>/PycharmProjects/stackoverflow/gattaka.text'
df = pd.read_table(csv, sep='/')
df_track = pd.DataFrame() # make new df to track less than 40% stop codons in columns
codon = ["TAA", "TGA", "TAG"]
for column in df.columns:
col_length = len(df[column])
col_list = df[column].tolist()
sum_stopper = 0
for gene in col_list:
if gene in codon:
sum_stopper += 1
if sum_stopper == 0:
break
elif sum_stopper <= (0.4 * col_length):
col_series = pd.Series(col_list, name=column)
df_track[column] = col_series
print(df_track)
print(' ')
# Jon's adjusted, pretty, concise and pythonic example
df_track = df.loc[:, (df.isin(codon).sum()/len(df) <= 0.4) & (df.isin(codon).sum() > 0)]
</code></pre>