実現したいこと
次のように複数のdataframeがあり、最初の2つと後半2つで処理を変えたいです。
python
1df_list = [df532, df1064, df1550, df2100] 2for df in df_list: 3 if df == df532: #| (df == df1064): 4 hoge 5 6 else: 7 hoge
発生している問題・分からないこと
if文でdf == df1のように条件指定するとエラーが起こり回避方法がわからない。
下記のエラーが返ってきます。
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
エラーメッセージ
error
1ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
該当のソースコード
# perform with for-loop df_list = [df532, df1064, df1550, df2100] for df in df_list: if df == df532: #| (df == df1064): fluc_H = df['X0 [mm]'].std() * calib_Manta_H fluc_V = df['Y0 [mm]'].std() * calib_Manta_V fluc_gm = (fluc_H * fluc_V) ** (0.5) # Geometric mean else: fluc_H = df['X0 [mm]'].std() * calib_XSWIR_H fluc_V = df['Y0 [mm]'].std() * calib_XSWIR_V fluc_gm = (fluc_H * fluc_V) ** (0.5) # Geometric mean print(f"{df} Fluctuation H: {fluc_H:.03f} urad") print(f"{df} Fluctuation V: {fluc_V:.03f} urad") print(f"{df} Fluctuation(Geometric mean): {fluc_gm:.03f} urad")
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
and や or を使う代わりに&,| を使うべきという記事にヒットしてしまう。
補足
特になし
回答1件
あなたの回答
tips
プレビュー