パンダを使用してヘッダーを含まないCSVファイルを読み取り、最初の列のみのデータをキャプチャして削除を実行するにはどうすればよいですか?

good_pro

人に関する情報と100列を超えるあらゆる種類のデータを含むCSVファイルがあります。ヘッダーはありません。私の主な目的は、人々の名前だけを取得することです。それに関連する他のデータではありません。これどうやってするの?

これは私のCSVファイルです--- 'data.csv':

John   12 34 23 48 14 44 94 24  ...    #extends till 100
Becky  23 40 93 47 84 43 64 31  ...    #extends till 100
Lio    63 90 53 77 14 12 69 20  ...    #extends till 100

これに続いて、たくさんの名前が入力されたリストがコードにあるとしましょう。

names = ['Timothy', 'Joshua', 'Rio', 'Catherine', 'Poorva', 'Gome', 'Lachlan', 'John', 'Lio']

私はCSVファイルをPythonで開き、リスト内包表記を使用して、最初の列のすべての名前を読み取り、変数「people_list」が割り当てられたリストに保存しました。

ここで、people_list内のすべての要素について、その要素が「names」リストに表示されていない場合、CSVファイル内のその要素を削除したいと思います。この例では、ベッキーが名前リストに表示されていないため、ベッキーを削除します。これは私がこれまでに試したことです...

デモ-data.py:

names = ['Timothy', 'Joshua', 'Rio', 'Catherine', 'Poorva', 'Gome', 'Lachlan', 'John', 'Lio']
csv_filename = data.csv

with open(csv_filename, 'r') as readfile:
reader = csv.reader(readfile, delimiter=',') 
people_list = [row[0] for row in reader]

for person in people_list:
    if person not in names:
        id = people_list.index(person) #grab the index of the person in people_list who's not found in the names list.

        #using pandas
        df = pd.read_csv(csv_filename) #read data.csv file
        df.drop(df.index[id], in_place = True) #delete the row id for the person who does not exist in names list.
        df.to_csv(csv_filename, index = False, sep=',')  #close the csv file with no index
    else:
        print("This person is found in the names list")

Beckyを削除する代わりに、CSVファイル内のすべてのレコード(Beckyを含む)が削除されました。誰かがこれを行う方法を説明できますか?

ジェズリール

デフォルトの列のパラメータheader=None追加...:read_csv0,1,2

df = pd.read_csv(csv_filename,  header=None)

names = ['Timothy', 'Joshua', 'Rio', 'Catherine', 'Poorva', 'Gome', 'Lachlan', 'John', 'Lio']

次に、最初の列を選択しdf[0]、メンバーシップをテストしてSeries.isin、次のようにフィルタリングしboolean indexingます。

df = df[df[0].isin(names)]
print (df)

ファイルへの最後の書き込み:

df.to_csv(csv_filename1, index = False, header=None)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ