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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

7602閲覧

python pandas データフレームの結合について

---stax---

総合スコア148

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/08/10 05:08

あるディレクトリの中にある複数の.csvファイルを読み込み、ひとつのデータフレームにしたいと考えています
そこで以下のコードを実行したのですがエラーとなります
csv_all の型を見ると
<class 'pandas.core.frame.DataFrame'>
となっているので問題ないように思うのですがなにが間違っているでしょうか?
初歩的な質問ですが宜しくお願い致します。

python

1path = r'C:\Users\Desktop\分析用\line' 2all_files = glob.glob(os.path.join(path, "*.csv")) 3 4df = pd.DataFrame 5for f in all_files: 6 csv_all = pd.read_csv(f, engine='python') 7 df = pd.concat(csv_all, ignore_index=True) 8 9df.describe()

以下エラー

python

1TypeError Traceback (most recent call last) 2<ipython-input-55-dfb850a24b45> in <module>() 3 7 csv_all = pd.read_csv(f, engine='python') 4 8 print(type(csv_all)) 5----> 9 df = pd.concat(csv_all, ignore_index=True) 6 10 7 11 df.describe() 8 9~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\reshape\concat.py in concat(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, sort, copy) 10 223 keys=keys, levels=levels, names=names, 11 224 verify_integrity=verify_integrity, 12--> 225 copy=copy, sort=sort) 13 226 return op.get_result() 14 227 15 16~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\reshape\concat.py in __init__(self, objs, axis, join, join_axes, keys, levels, names, ignore_index, verify_integrity, copy, sort) 17 239 raise TypeError('first argument must be an iterable of pandas ' 18 240 'objects, you passed an object of type ' 19--> 241 '"{name}"'.format(name=type(objs).__name__)) 20 242 21 243 if join == 'outer': 22 23TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"

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

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

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

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

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

guest

回答1

0

ベストアンサー

csv_allをDataFrameのリストにしてやればいけたと思います。

Python

1csv_all = [] 2for f in all_files: 3 csv_all.append(pd.read_csv(f, engine='python')) 4df = pd.concat(csv_all, ignore_index=True) 5 6df.describe()

投稿2018/08/10 05:12

tachikoma

総合スコア3601

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

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

---stax---

2018/08/10 05:22

素早い回答ありがとうございます 頂いたコードでエラーなく実行できました ただ、csvの列数は本来164列なのですが、df.describe()で確認したところ155列、df.head()で見ると177列となぜか増減します・・・ これは何が原因なのでしょうか?
tachikoma

2018/08/10 06:04

データが手元にないのでちょっとそこは分からないです。
---stax---

2018/08/10 06:07

ありがとうございます。 出力結果と元データを確認すると、出力結果のほうに重複して列が追加されていたようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問