質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

937閲覧

pandasのマージを使用してデータ連結させたいが、うまくいかない

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/11/02 07:34

以下の複数の同一フォーマットのCSVファイルをlistでまとめたデータがあります。
ヘッダー行はないです。

data

1[ 2020-09-28T08:59:58+09:00 SEN06FFC0117 264 56 1009 220 663 2 0 2020-09-28T09:00:02+09:00 SEN04FFC0116 260 53.0 1010.0 695 539.0 3 1 2020-09-28T09:00:00+09:00 SEN08FFC0117 260 57.0 1008.0 162 741.0 4 2 2020-09-28T09:00:01+09:00 SEN08FFC0102 264 58.0 1008.0 273 743.0 5 3 2020-09-28T09:00:03+09:00 SEN08FFC0103 262 59.0 1008.0 277 831.0 6 4 2020-09-28T09:00:05+09:00 SEN04RMG0301 246 60.0 1010.0 59 566.0 7 ... ... ... ... ... ... ... ... 8 53815 2020-09-29T08:59:46+09:00 SEN05FFC0101 264 52.0 1011.0 57 555.0 9 53816 2020-09-29T08:59:49+09:00 SEN09RMG0205 235 61.0 1009.0 232 765.0 10 53817 2020-09-29T08:59:50+09:00 SEN03RMG0802 251 55.0 1012.0 6 477.0 11 53818 2020-09-29T08:59:50+09:00 SEN07FFC0116 268 53.0 1010.0 211 679.0 12 53819 2020-09-29T08:59:56+09:00 SEN03RMG0601 252 57.0 1012.0 25 568.0 13 14 [53820 rows x 7 columns], 15 2020-08-28T09:00:00+09:00 SEN05FFC0121 279 61 1010 195 600 16 0 2020-08-28T09:00:00+09:00 SEN04FFC0114 283 60 1011 300 618.0 17 1 2020-08-28T08:59:59+09:00 SEN09TWM0101 315 56 1008 1 NaN 18 2 2020-08-28T09:00:02+09:00 SEN04FFC0121 271 63 1010 177 661.0 19 3 2020-08-28T09:00:04+09:00 SEN09RMG0102 275 61 1008 366 547.0 20 4 2020-08-28T09:00:07+09:00 SEN07FFC0112 273 52 1009 612 613.0 21 ... ... ... ... .. ... ... ... 22 53834 2020-08-29T08:59:45+09:00 SEN08FFC0121 287 66 1007 95 387.0 23 53835 2020-08-29T08:59:48+09:00 SEN04FFC0123 281 66 1009 19 534.0 24 53836 2020-08-29T08:59:50+09:00 SEN05RMG0101 285 69 1009 17 432.0 25 53837 2020-08-29T08:59:53+09:00 SEN07FFC0108 283 66 1008 27 420.0 26 53838 2020-08-29T08:59:54+09:00 SEN09RMG0202 296 66 1007 52 447.0 27 28 [53839 rows x 7 columns],・・・・

上記を以下のスクリプトでタイムスタンプ順で縦に追加していきたいのですが、なぜか横にも追加されます。
なぜでしょうか。教えてほしいです。宜しくお願いします。

python

1# -*- coding: utf-8 -*- 2import os 3import glob 4import csv 5import pandas as pd 6 7# フォルダ中のパスを取得 8DATA_PATH = "./sensors/" 9All_Files = glob.glob('{}*.csv'.format(DATA_PATH)) 10 11list = [] 12for file in All_Files: 13 list.append(pd.read_csv(file)) 14 15df_merge_08 = pd.concat(list, axis=0)

実際の結果なぜか横にもマージなのか、それとも何かよく理解できてません。

result

12020-09-28T08:59:58+09:00 SEN06FFC0117 264 56 1009 220 663 2020-08-28T09:00:00+09:00 SEN05FFC0121 279 ... 430 2020-08-24T08:59:59+09:00 SEN07FFC0117 180 671 2020-09-24T09:00:04+09:00 SEN09RMG0102 255 78 459 20 2020-09-28T09:00:02+09:00 SEN04FFC0116 260.0 53.0 1010.0 695.0 539.0 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 31 2020-09-28T09:00:00+09:00 SEN08FFC0117 260.0 57.0 1008.0 162.0 741.0 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN

行いたい結果は以下のイメージです。実際はヘッダー行は存在しません。
A.csv

タイムスタンプAB・・・
2020-09-28T09:00:02+09:00SEN04FFC011626053.0
2020-09-28T10:00:02+09:00SEN04FFC011626053.0
・・・

B.csv

タイムスタンプAB・・・
2020-09-29T09:00:02+09:00SEN04FFC011626053.0
2020-09-29T10:00:02+09:00SEN04FFC011626053.0
・・・

連結して以下にしたい

タイムスタンプAB・・・
2020-09-28T09:00:02+09:00SEN04FFC011626053.0
2020-09-28T10:00:02+09:00SEN04FFC011626053.0
2020-09-29T09:00:02+09:00SEN04FFC011626053.0
2020-09-29T10:00:02+09:00SEN04FFC011626053.0
・・・

以上になります。何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ヘッダー行はないです。

であるのに、read_csvの引数にheader=Noneを指定していないため、先頭行をヘッダーとして読み込んでいる。そのため、列ヘッダーがCSVファイルごとに異なることになり、マージの際に列ヘッダーが一致しないことから、横に追加されていくことになる。

コードの後半を以下のように修正してください。なお、listは組み込み関数の名前とかぶるので、別の名前にすることをお薦めします。

Python

1lst = [] 2for file in All_Files: 3 lst.append(pd.read_csv(file), header=None) 4 5df_merge_08 = pd.concat(lst, axis=0)

投稿2020/11/02 08:18

編集2020/11/02 08:24
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/02 10:19

毎回有り難うございます。 理解でき、修正できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問