いつもお世話になります。
2点質問させていただきます。
1点目は複数のデータフレームの結合の際の整形について質問させていただきます。
以下のようなデータフレームがあった場合、B列をインデックスにして、
行を並び替える方法についてご教示願います。
以下の場合ですと、[あ、い、う、え]をインデックスにしたいですが、df1は「え」が欠損しており、
df2は「い」が欠損しており、df3は「う」が欠損しています。
その結果、結合した際に行数が合わなくなり、「あ~え」のデータを横並びにできません。
理想の形のように共通した行に合わせて、データを横並びにさせたいです。
pyhton
1import pandas as pd 2 3df1 = pd.DataFrame({"A":[1,2,3],"B":["あ","い","う"]}) 4df2 = pd.DataFrame({"A":[11,33,44],"B":["あ","う","え"]}) 5df3 = pd.DataFrame({"A":[111,333,444],"B":["あ","い","え"]}) 6df4 = pd.DataFrame({"A":[1111,2222,3333,4444],"B":["あ","い","う","え"]}) 7#一旦リスト化 8df_list=[df1,df2,df3,df4] 9#結合 10df5=pd.concat(df_list,axis=1)
df5
|index|A|B|A|B|A|B|A|B|
|:--|:--:|--:|:--|:--:|--:|
|0|1|あ|11|あ|111|あ|1111|あ|
|1|2|い|33|う|222|い|2222|い|
|2|3|う|44|え|444|え|3333|う|
|3|nan|nan|nan|nan|nan|nan|4444|え|
↓理想の形
|index|A|B|A|B|A|B|A|B|
|:--|:--:|--:|:--|:--:|--:|
|あ|1|あ|11|あ|111|あ|1111|あ|
|い|2|い|nan|nan|222|い|2222|い|
|う|3|う|33|う|nan|nan|3333|う|
|え|nan|nan|44|え|444|え|4444|え|
・
・
2点目ですが、列名が同じなので結合した際に番号を振って、
以下の様に個別化させることは可能でしょうか。
|index|A|B|A|B|A|B|A|B|
|:--|:--:|--:|:--|:--:|--:|
↓
|index|A1|B1|A2|B2|A3|B3|A4|B4|
|:--|:--:|--:|:--|:--:|--:|
長文失礼いたしました。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/16 06:06