私は、これらのデータフレームの3つの列に基づいて特定のしきい値に基づいてフィルタリングする必要がある同じフォーマットのファイルを2つ持っています。彼らのように別々の結果特定の列からデータフレームベースの値をフィルタリングする際に属性エラーが発生しました
例のデータフレームは、以下のようになります、
ID Mean log2FoldChange SE stat pvalue padj
0 ENSG2 0.737466 -0.434579 0.484389 -0.897170 0.369628 0.607709
1 ENSG32 321.467787 -0.405760 0.170955 -2.373484 0.017621 0.097636
2 ENSG85 0.000000 NaN NaN NaN NaN NaN
そして私は、私はフィルタリングし、データフレームからのサブセットを抽出し、
それを保存するために使用するように定義された以下の機能を実行しようとすると、def DEfilter(df):
Up_regulted = df.query('log2FoldChange >= 0.58 and pvalue <= 0.05 and padj <= 0.05')
Down_regulated = df.query('log2FoldChange <= -0.58 and pvalue <= 0.05 and padj <= 0.05')
#Frames = [Up_regulted,Down_regulated]
DE = pd.concat(Up_regulted,Down_regulated)
return df
と私は、データフレームの1、エラー以下の私を投げ
Patient_pairs.apply(DEfilter,axis=1)
その上でそれを適用しようとすると、
AttributeError: ("'Series' object has no attribute 'query'", 'occurred at index 0')
これは、これまでのところ、私はフィルタリングされた結果として保存され得ることを試みたものです新しいファイル、
path = '/home/pathtofile'
files = os.listdir(path)
results = [os.path.join(path,i) for i in files if i.startswith('DE')]
for filename in results:
name = os.path.basename(os.path.normpath(filename))
df = pd.read_csv(filename, sep=sep, header=0)
Up = df.query('log2FoldChange >= 0.58 and pvalue <= 0.05 and padj <= 0.05')
Down = df.query('log2FoldChange <= -0.58 and pvalue <= 0.05 and padj <= 0.05')
DE = pd.concat(Up,Down)
DE.to_csv('Filtered_set_' + name, sep='\t',index=False)
すべてのヘルプ/提案は素晴らしいことだ
サンプルデータの出力を期待してください。また、あなたが本当にやろうとしているように見えます: 'filteredDf = DEfilter(Patient_Pairs)'、 'df'ではなく' DE'を返すことを意味すると仮定します。 –