順番にディレクトリ内の複数のファイルをリンクします。 NAは許可されます。

順番にディレクトリ内の複数のファイルをリンクします。 NAは許可されます。

6つのファイルが複数あり、各ファイルには名前を含む列が1つしかありません。これらすべてのファイルを読み、次のように1つのファイルにマージしたいと思います。

file1  file2  file3  file4  file5  file6  Count
adam   adam   adam   adam   adam   adam   1
Roy    NA     Roy    Roy    NA     NA     0.5
NA     Sam    Sam    NA     NA     NA     0.33

adamこれは、すべてのファイルにRoy3つのファイル(file1、3、4)とSam2つのファイル(file2、3)に対応する名前があることを示します。最後の列は追加され、すべてのファイルをマージして計算されます。すべてのファイルに表示される名前の割合を提供します。たとえば、Royの場合、6つのファイルのうち3つで観察さCountれます。3/6 = 0.5

結果のデータフレームはcolnames実際のファイル名を表す必要があります。私が読んでいるファイルの名前が等だとしましょfile1.txtfile2.txt

どんな助けでも大変感謝します。ありがとうございます。

ベストアンサー1

Pythonスクリプトを作成して、各ファイルを読み取り、名前をキーとして含め、名前の数を値として数える辞書を作成できます。最後に、各値をファイル数で割ることができます。

このような:

#!/usr/bin/env python  

filelist= ['file1.txt', 'file2.txt', 'file3.txt', 'file4.txt']
dictionary= dict()

for file in filelist:
    fd= open(file, "r")

    for name in fd.readlines():
        name= name.strip()
        if name in dictionary.keys():
            dictionary[name]+= 1
        else:
            dictionary[name]= 1
        fd.close()

for x in dictionary.keys():
    print("{0} : {1}".format(x, float(dictionary[x])/len(filelist)))

編集する:
Linuxでは、Pythonがデフォルトで使用されます。コピーしてファイルに貼り付けて実行します。動作しています。

おすすめ記事