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

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

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

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

pandas

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

Q&A

解決済

1回答

1038閲覧

ヘッダーを残したまま、データの中身を削除する方法(python)

revoiot

総合スコア188

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2022/05/14 09:29

編集2022/05/14 09:44

python初心者です。

①のCSVファイルのB列に16から始まる余計なデータが入っており、
ヘッダーを残したまま、削除したいと考えております。(ヘッダーは問題ないですが、データの中身に不要なものが一部あり、ヘッダー5列、データの中身6列となっており、データの中身を5列にしたいです。)
③にあるような加工した後の理想のイメージのように加工したいです。

試行した方法
CSVを読み込んだ後、16から始まる余計なデータがあるdate列を削除して、
カラムの名前を再度ふり直そうとしましたが、
2021-12-22という日付が入ったデータがindexとして認識されているためか、
5列あるのに、4列としてしか認識されておらず、エラーが出てしまい、カラム名を振り直すことができない状況です。(index_col=Noneをオブション指定しましたが、効果がないようです。)
上記方法以外でも構いませんので、1640257657,の部分を削除するいい方法が思いつく方いらっしゃいましたら、ご教示いただけないでしょうか?

python

1 df_ACTIVITY = pd.read_csv(path, index_col=None, sep=',',encoding='utf-8') 2 df_ACTIVITY = df_ACTIVITY.drop('date', axis=1) 3 df_ACTIVITY.columns = ['date','steps','distance','runDistance','calories'] 4
als\base.py", line 69, in _validate_set_axis raise ValueError( ValueError: Length mismatch: Expected axis has 4 elements, new values have 5 elements

①CSVファイルをエクセルで開いたときのイメージ
イメージ説明

②CSVファイルをテキストエディターで開いたときのイメージ
date,steps,distance,runDistance,calories
2021-12-22,1640257657,856,622,145,30
2021-12-23,1640272267,1222,888,194,46
2021-12-24,1640360400,1070,740,293,55
2021-12-25,1640500866,12662,9572,306,365
2021-12-26,1640531405,17062,12983,552,477
2021-12-27,1640662824,4888,3691,124,138

③加工した後の理想のイメージ
イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python

1import pandas as pd 2 3df_ACTIVITY = pd.read_csv('data.csv', skiprows=1, header=None, sep=',', encoding='utf-8') 4df_ACTIVITY = df_ACTIVITY.drop(1, axis=1) 5df_ACTIVITY.columns = ['date','steps','distance','runDistance','calories'] 6print(df_ACTIVITY) 7 8# 9 date steps distance runDistance calories 100 2021-12-22 856 622 145 30 111 2021-12-23 1222 888 194 46 122 2021-12-24 1070 740 293 55 133 2021-12-25 12662 9572 306 365 144 2021-12-26 17062 12983 552 477 155 2021-12-27 4888 3691 124 138

投稿2022/05/14 09:58

melian

総合スコア19825

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

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

revoiot

2022/05/14 10:28

ご回答くださり、ありがとうございます。 おかげ様で、希望通りに無事データを整列させることができました。 先頭行の読み込みをさせないようにskiprowを使用すればよかったのですね、、、思いつきませんでした、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問