[解決済み】PandasやNumpyのNanをNoneに置き換えてMysqlDBで使用する。
2022-04-09 03:36:34
質問
私はMysqlDBを使用してPandasのデータフレーム(またはnumpyの配列を使用することができます)をmysqlデータベースに書き込もうとしている。MysqlDBは'nan'を理解していないようで、私のデータベースはnanがフィールドリストにないというエラーを投げつけます。私は、'nan'をNoneTypeに変換する方法を見つける必要があります。
何かアイデアはありますか?
解決方法は?
bogatronの言うとおりです。
where
このようなことは、pandasでネイティブに行えるということは、注目に値します。
df1 = df.where(pd.notnull(df), None)
注:これは
すべてのカラム
から
object
.
例
In [1]: df = pd.DataFrame([1, np.nan])
In [2]: df
Out[2]:
0
0 1
1 NaN
In [3]: df1 = df.where(pd.notnull(df), None)
In [4]: df1
Out[4]:
0
0 1
1 None
注意:DataFrameのリキャストができないもの
dtype
を使用して、すべてのデータ型が使用できるようにします。
astype
で、次にDataFrame
fillna
メソッドを使用します。
df1 = df.astype(object).replace(np.nan, 'None')
残念ながら、この方法と
replace
で動作します。
None
見る
この(閉じた)問題
.
余談ですが、ほとんどのユースケースでNaNをNoneに置き換える必要はないようです。 pandasのNaNとNoneの違いについて .
しかし、この具体的なケースでは、(少なくともこの回答の時点では)そうなっているようです。
関連
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み] virtualenvで異なるバージョンのPythonを使用する
-
[解決済み] Pandas DataFrameの特定の列の値がNaNである行を削除する方法
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] Pandasのデータフレームから行を選択するために値のリストを使用する
-
[解決済み] Pythonのdictをdataframeに変換する
-
[解決済み】PandasでSettingWithCopyWarningに対処する方法
-
[解決済み】pandasの関数をカラムに適用して、複数の新しいカラムを作成する?
-
[解決済み] Pandasはデータフレームをタプルの配列に変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PythonはWordの読み書きの変更操作を実装している
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")