前提・実現したいこと
pandasのデータフレームで列を規則性に従い結合させたいです。
ご教示頂ければ幸いです。
(861, 76)のデータがあり
columns = ['No','あ', 'い', 'う','あ.1', 'い.1', 'う.1','あ.2',
'い.2', 'う.2',......'あ.10', 'い.10', 'う.10', 'あ.12',
'い.12', 'う.12',....]と数字は規則性はなく、10の次が12など飛び飛びです。
そのデータフレームを3列のデータフレームにして縦に結合したいです。
columnsは[0,1,2]として
列に入っている文字はstr型です。
どうにもやり方がわかりませんので、ご教示頂ければ幸いです。
発生している問題・エラーメッセージ
以下のコードを実行すると、列名が違うため、横に結合されています。
該当のソースコード
python
1ncol = len(df.columns) 2data_list = [] 3for i,c in enumerate(range(1,ncol,3)): 4 df = pd.DataFrame(df.iloc[:,[c,c+1,c+2]]) 5 data_list.append(df) 6 7dfs = pd.concat(data_list)
試したこと
columns = ['A','B','C']
ncol = len(df.columns)
data_list = []
for i,c in enumerate(range(1,ncol,3)):
df = pd.DataFrame(df.iloc[:,[c,c+1,c+2]],columns =columns)
data_list.append(df)
dfs = pd.concat(data_list)
こうすると最初の3列と全てが同じデータになります。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/12 07:02