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

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

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

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

Q&A

1回答

1068閲覧

listの要素(数値データ)を[]なしで取り出したい。

melo_yuya

総合スコア16

Python 3.x

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

0グッド

0クリップ

投稿2021/06/29 02:00

前提・実現したいこと

list内の数値データを取り出し、今後算術演算子(>、<など)で条件式に利用したいが、
取り出したデータには[]が含まれており条件式に数値として利用できません。
[]なしで取り出すもしくはlistから数値を取り出した後で[]を取り除く方法があれば知りたいです。

実行環境

実行環境はWindows10、Annaconda(Spyder)を使用しています。

Python3.

1import geopandas as gpd 2import pandas as pd 3 4#shpファイルの読み込み 5yoshi = gpd.read_file("yoshikawa_2019.shp") 6#欠測値削除 7yoshi = yoshi.dropna(how='any') 8 9yoshiA_1 = yoshi['0402Amedia'] 10yoshiA_2 = yoshi['0414Amedia'] 11yoshiA_3 = yoshi['0426Amedia'] 12yoshiA_4 = yoshi['0508Amedia'] 13yoshiA_5 = yoshi['0520Amedia'] 14yoshiA_6 = yoshi['0601Amedia'] 15yoshiA_7 = yoshi['0613Amedia'] 16yoshiA_8 = yoshi['0625Amedia'] 17yoshiA_9 = yoshi['0707Amedia'] 18yoshiA_10 = yoshi['0719Amedia'] 19yoshiA_11 = yoshi['0731Amedia'] 20yoshiA_12 = yoshi['0812Amedia'] 21 22#列方向に結合 23yoshi_A = pd.concat([yoshiA_1,yoshiA_2,yoshiA_3,yoshiA_4,yoshiA_5,yoshiA_6,yoshiA_7,yoshiA_8,yoshiA_9,yoshiA_10,yoshiA_11,yoshiA_12],axis = 1) 24 25#観測日の準備 26time_A = pd.Series([20190402,20190414,20190426,20190508,20190520,20190601,20190613,20190625,20190707,20190719,20190731,20190812]) 27 28#文字列から時間への変換 29convert_time_A = pd.to_datetime(time_A, format='%Y%m%d') 30 31#移動平均後の観測日の準備 32timeA = pd.Series([20190414,20190426,20190508,20190520,20190601,20190613,20190625,20190707,20190719,20190731]) 33#文字列から時間への変換 34convert_timeA = pd.to_datetime(timeA, format='%Y%m%d') 35 36sakutuke = yoshi['totiriyou'] 37sakutuke = sakutuke.reset_index() 38sakutuke = sakutuke.drop(columns='index') 39sa = sakutuke.values.tolist() 40 41#最終的にcsvファイルに出力するためのpandasの準備 42yoshi_A_fil = pd.DataFrame(columns=[]) 43 44for i in range(0,620): 45 #i番目のポリゴンの抽出 46 b_A = yoshi_A.loc[i] 47 saku = sa[i] 48 #indexを時系列に変換 49 b_A.set_axis(convert_time_A, axis='index', inplace=True) 50 #seriesをnumpyに変換 51 b_A_np = b_A.values.tolist() 52 #計算した後方散乱係数を格納するためのlist 53 b_A_fil=[] 54 #加重移動平均 55 for j in range(0,12): 56 #最初と最後は計算出来ないため除去 57 if j == 0 or j == 11: 58 pass 59 #最初と最後以外の場合 60 else: 61 b_A_1 = b_A_np[j-1] 62 b_A_2 = b_A_np[j] 63 b_A_3 = b_A_np[j+1] 64 #加重移動平均の計算 65 b_A_2 = (b_A_1/4)+(b_A_2/2)+(b_A_3/4) 66 #listに追加 67 b_A_fil += [b_A_2] 68 69 #最終的にDataFrameから出力するためにlistをSeriesに変換 70 b_A_fil = pd.Series(b_A_fil) 71 #indexを時系列に変換 72 b_A_fil.set_axis(convert_timeA, axis='index', inplace=True) 73 b_A_fil["sakutuke"] = saku 74 #加重移動平均を格納したSeriesをDataFrameに追加 75 yoshi_A_fil = yoshi_A_fil.append(b_A_fil, ignore_index = True) 76 77

試したこと

b_A_filに追加する際にpandasやnumpyにしたりして試してみましたが、ダメでした。

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

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

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

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

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

guest

回答1

0

投稿2021/06/29 02:05

y_waiwai

総合スコア88042

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

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

melo_yuya

2021/06/29 02:48

ご回答ありがとうございます。 この場合printで出力する際の方法は書かれているのですが、実際にデータとして利用する方法もあるのでしょうか?
y_waiwai

2021/06/29 02:54

具体的にどういう記述のときにダメなんでしょうか #そりゃ配列そのままで比較しようとしてもダメですね
melo_yuya

2021/06/29 03:13

yoshi_A_fil.to_csv("yoshi2019_A_smoothing.csv") 上記のコードでcsvファイルにした後で、別のコードでcsvファイルを読み込みます。 yoshi_A = pd.read_csv('yoshi2019_A_smoothing.csv', encoding = "shift-jis", skiprows = 1, names = ['sakutuke']) yoshi0005 = yoshi_A[(yoshi_A.sakutuke>0)&(yoshi_A.sakutuke<5)] 上記のような条件で取り出すときにうまくいきません。
y_waiwai

2021/06/29 05:05

a=[1] というのなら、a[0] で1が取り出せますよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問