複数のリストをデータフレームに取り込む 質問する

複数のリストをデータフレームに取り込む 質問する

複数のリストをPythonデータフレームの異なる列に配置するにはどうすればいいですか?試してみましたこの解決策しかし、少し問題がありました。

試行1:

  • 3つのリストを用意し、それらをまとめて圧縮して使用しますres = zip(lst1,lst2,lst3)
  • 1列だけ生成されます

試行2:

percentile_list = pd.DataFrame({'lst1Tite' : [lst1],
                                'lst2Tite' : [lst2],
                                'lst3Tite' : [lst3] }, 
                                columns=['lst1Tite','lst1Tite', 'lst1Tite'])
  • 1行3列(上記の方法)になるか、転置すると3行1列になります。

100 行 (各独立リストの長さ) x 3 列 (3 つのリスト) の pandas データフレームを取得するにはどうすればよいですか?

ベストアンサー1

もうすぐ完了すると思います。lst's の周りの余分な角括弧を削除してみてください (また、次のように辞書からデータフレームを作成する場合は、列名を指定する必要はありません)。

import pandas as pd
lst1 = range(100)
lst2 = range(100)
lst3 = range(100)
percentile_list = pd.DataFrame(
    {'lst1Title': lst1,
     'lst2Title': lst2,
     'lst3Title': lst3
    })

percentile_list
    lst1Title  lst2Title  lst3Title
0          0         0         0
1          1         1         1
2          2         2         2
3          3         3         3
4          4         4         4
5          5         5         5
6          6         6         6
...

np.column_stack最初の試みよりもパフォーマンスの高いソリューションが必要な場合はzip、この例よりも約 2 倍高速になりますが、読みやすさが少し犠牲になるという点が私の意見です。

import numpy as np
percentile_list = pd.DataFrame(np.column_stack([lst1, lst2, lst3]), 
                               columns=['lst1Title', 'lst2Title', 'lst3Title'])

おすすめ記事