0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ローカルのcsvを元にpandasで新たにcsvを作成する

Posted at

ローカルのcsvを元にpandasで新たにcsvを作成する

次のcsvがローカルにあるとします。

sample.csv
id,age,name,money
111,11,sato,1100
222,22,suzuki,20000
333,33,takahashi,330000
444,44,tanaka,440000
555,55,ito,500000
666,66,yamamoto,800000
777,77,nakamura,1000000

これを元に以下を満たすcsvを新たに作成します。

  • csvのデータを一部並び替えたい
  • 固定のヘッダー名+1行のcsvを元のcsvの行数分作成したい
  • 新規作成するcsvのファイル名は既存データを元に命名する

実行環境

  • MacOS 10.15.5
  • Python 3.7.3
  • pyenv 1.2.19
  • pip 20.1.1
  • pandas 1.0.5

コード

gencsv.py
import pandas as pd

id_list = []
age_list = []
name_list = []
money_list = []

read_csvfile = 'sample.csv'
def stack_data():
    global name_list
    global id_list
    global age_list 
    global money_list 

    # csvからデータを読みこむ
    data = pd.read_csv(read_csvfile)
    # 各リストに格納する
    for name in data['name']:
        name_list += [name]
    for i in data['id']:
        id_list += [i]
    for age in data['age']:
        age_list += [age]
    for money in data['money']:
        money_list += [money]


def generate_csv():
    # 取得したデータをデータフレームに代入する
    for i in range(len(name_list)):
        df = pd.DataFrame({
            'name': name_list[i],
            'age': age_list[i],
            'money': money_list[i],
        },index=[i,])

        csv_title =  'personID=' + str(id_list[i]) + '.csv'

        # データフレームを元にcsvを生成する
        df.to_csv(csv_title, index=False)
        print(csv_title+'が生成されました')
    print("全て作成完了")


stack_data()
generate_csv()

実行結果

$ python3 gencsv.py
personID=111.csvが生成されました
personID=222.csvが生成されました
personID=333.csvが生成されました
personID=444.csvが生成されました
personID=555.csvが生成されました
personID=666.csvが生成されました
personID=777.csvが生成されました
全て作成完了

終わりに

  • 何かありましたらコメントお願いいたします。
0
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?