Pandas DataFrameで作ったデータをファイルに保存して、それを読み出してプログラム内のDataFrameと比較し、一致するかを調べようとしています。
下記コードでセーブした同じデータを比較する。
printされた限り同じデータに見えるのですが、
df.equals(d2)として比較するとFalseとなります。
中の要素を見てみるとプログラム中のDataFrameの中の個別要素はintで、csvファイルから読んだ個別要素がnumpy.int32であるため、df.equals的には一致しないようです。
個別要素をfor文で呼び出して要素ごとにintにして比較すれば出来るのでしょうが、こう、なんとかdf.equals等で一括で比較したいです。
どうすれば良いでしょうか?
python
1 import pandas as pd 2 df = pd.DataFrame(columns=['number']) 3 #プログラム内データ 4 d2 = pd.Series([int(number[0])], index=df.columns) 5 df = df.append(d2, ignore_index=True) 6 #セーブデータとの比較 7 df2 = pd.read_csv(r"c:\temp.csv", encoding='utf_8_sig', index_col=0, dtype=int) 8 print(df2) 9 print(df2.iloc[0, 0]) 10 print(type(df2.iloc[0, 0])) 11 12 print(df) 13 print(df.iloc[0, 0]) 14 print(type(df.iloc[0, 0])) 15 16 print(df.equals(df2))
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/09 09:39