

今まで以下のようなコードでデータを読み込み連結させていたのですが，最初の10行をfor文を用いるなどしてスマートにできますでしょうか．

[code]

    import numpy as np
    import pandas as pd
    from pandas import Series, DataFrame
    import matplotlib.pyplot as plt
    %matplotlib inline
    da1 = pd.read_csv("data-1.csv",header=None)#
    da2 = pd.read_csv("data-2.csv",header=None)#
    da3 = pd.read_csv("data-3.csv",header=None)#
    da4 = pd.read_csv("data-4.csv",header=None)#
    da5 = pd.read_csv("data-5.csv",header=None)#
    da6 = pd.read_csv("data-6.csv",header=None)#
    da7 = pd.read_csv("data-7.csv",header=None)#
    da8 = pd.read_csv("data-8.csv",header=None)#
    da9 = pd.read_csv("data-9.csv",header=None)#
    da10 = pd.read_csv("data-10.csv",header=None)#
    
    da_all = pd.concat([da1,da2,da3,da4,da5,da6,da7,da8,da9,da10],axis=1,sort=False)
    plt.plot(ch,da_all[0:12], linestyle='None',marker='o')
    
    np.savetxt("data-all.csv", da_all, delimiter=",")#
    
[/code]

試しに以下のようなコードで実行するとエラーが出てしまいました．  
#前処理

#データ合体(転置前の前処理用)

[code]

    for n1 in range(1,11):
        f"da{n1}" = pd.read_csv(f"201013-945-del-{n1}.csv",header=None)#
    
    
    da_all = pd.concat([da1,da2,da3,da4,da5,da6,da7,da8,da9,da10],axis=1,sort=False)
    plt.plot(ch,da_all[0:12], linestyle='None',marker='o')
    
    np.savetxt("201013-945-del-all.csv", da_all, delimiter=",")#
    
[/code]


CC BY-SA 4.0
2020-11-16T06:22:21.853
71975
2020-11-16T11:33:02.160
42568
question
python
for文を用いたデータ読み込みと連結


既にご自身で答えを出しておられる様なモノかと思いますが。。。

[code]

    da_all = pd.concat(
      [pd.read_csv(f"data-{i+1}.csv", header=None) for i in range(10)],
      axis=1, sort=False
    )
    
[/code]


CC BY-SA 4.0
2020-11-16T06:56:49.780
71977
2020-11-16T06:56:49.780
71975
answer


下記の様なコードがforループを使用した一般的なコードかと思います。

[code]

    df_list = []
    for i in range(1,11):
        df_list.append(pd.read_csv(f"data-{i}.csv", header=None))
    
    df_all = pd.concat(df_list, axis=1, sort=False)
    
[/code]

お勧めはしませんが、質問者さんが書きたかったコードは下記かと思います。

[code]

    for n1 in range(1,11):
        exec("da" + str(n1) +  "= pd.read_csv(f'data-{n1}.csv',header=None)")
    
    da_all = pd.concat([da1,da2,da3,da4,da5,da6,da7,da8,da9,da10],axis=1,sort=False)
    
[/code]


CC BY-SA 4.0
2020-11-16T11:33:02.160
71986
2020-11-16T11:33:02.160
39819
71975
answer