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

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

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

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

Q&A

解決済

2回答

761閲覧

日変化に条件を付けて、それを含む行のデータを削除したい

high111

総合スコア10

Python

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

0グッド

0クリップ

投稿2020/08/05 09:10

編集2020/08/05 23:59

前提・実現したいこと

発生している問題・エラーメッセージ

下記のようなデータ('Date’はtimedelta)について、'Date'の値が1daysかそれ以外かで条件分けを行い、1days以外の場合、その値が入っている行のデータすべてを削除した新たなデータを作成したいです。
(下記の場合、241行目の'Date'の値が3daysなので241行目を丸々消して、残りの1daysの情報だけを残したものを新たに作成したいです。)

Date x y z lat lon Heighit

0 NaT NaN NaN NaN NaN NaN NaN
1 1 days -0.007 0.008 0.007 2.99999989e-08 0.0000000 0.01185387
2 1 days 0.011 -0.005 -0.002 2.00000017e-08 -0.0000001 -0.01114478
3 1 days -0.005 0.005 0.011 7.99999995e-08 0.0000000 0.01030165
4 1 days -0.013 0.015 0.012 1.99999981e-08 -0.0000001 0.02113094

239 1 days 0.030 -0.023 -0.014 3.00000025e-08 0.0000001 -0.03944765
240 1 days -0.010 0.008 0.008 1.99999981e-08 0.0000000 0.01386889
241 3 days 0.022 -0.027 -0.026 -1.00000001e-07 0.0000001 -0.03890050
242 1 days -0.033 0.053 0.042 1.50000002e-07 -0.0000003 0.06550008
243 1 days 0.029 -0.039 -0.032 -1.00000001e-07 0.0000002 -0.05279695

該当のソースコード

a=len(data)
for i in range(a):
if data['Date'] = '1days':
print(i.index)
else:
print(data.drop)

試したこと

for文とif文で回そうとしたのですが、書き方が分からずエラーが出てしましました。
最初のif部分の条件式でエラーが出ます。この先から進まないのではっきりとは分かりませんが、その後の記述でもエラーが出てくると思います。

補足情報(FW/ツールのバージョンなど)

pythonを使用しています。

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

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

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

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

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

aokikenichi

2020/08/05 09:16

「for文とif文で回そうとしたのですが、書き方が分からずエラーが出てしましました。」 とのことであればそれとエラーを示して直してもらった方がよろしいかと teratailはやりたいことの丸投げはマナー違反とのことですので for文を使っても使わなくてもif文もなしでも出来ますが、 x列が"1 days"か否かまではif文で出来ますよね
meg_

2020/08/05 12:48

書いたコードを提示してください。
meg_

2020/08/06 01:53

・コードは「コードの挿入」で記入してください。 ・「エラーが出てしましました。」とのことですが、どの行でどんなエラーが出たのですか?
guest

回答2

0

下記でどうでしょうか?

python

1result = data[data['Date'] < '2 days']

投稿2020/08/06 02:11

meg_

総合スコア10580

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

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

0

ベストアンサー

for文とif文で回そうとしたのですが、書き方が分からずエラーが出てしましました。

とありますが、どのように書いたのでしょうか。

私は基本的にC++でやっていますから、C++流で考えると、

私なら

  1. ファイル(データが書かれているファイル)を読み込む
  2. 作っておいたクラスを用いてデータを読み込んでいく
  3. オブジェクトのリスト(あるいは配列)を操作する
  4. 処理後にオブジェクトごとに書き込んでいく

でしょうね。

"作っておいたクラス" っていうのはそのデータ構造によりますが、今回の場合はUML風に書くと、

[Data] + Data( d : 日付型, x : 少数, ... ) + process( ... ) : bool # 何らかの処理を加える + toString() : 文字列型 // 書き込むための文字列 - date : 日付型 - x : 少数 - y : 少数 - z : 少数 - lat : 少数 - lon : 少数 - height : 少数

のような、感じでC言語でいう構造体風のやつでもいいから、それに入れて処理する...みたいな?

投稿2020/08/05 11:50

BeatStar

総合スコア4958

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問