#pandasで読み込む時の文字列の取り扱いについて
お世話になります。いつも勉強させて頂いております!
pandasでエクセルデータを読み込む際の数値の取り扱いについてなのですが…
python
1df['***'].fillna(999).astype(np.int)
「***」列の文字列を読み込むときに、欠損値はfillnaで「999」に置換、
それ以外はastypeでintにデータ型を変換しています。
その列の値に「001」「002」などの頭に「0」が付いた文字列が入っています。
そのまま読み込みたいのですが、上記の指定だと、頭の00が取れてしまいます。
どうすれば既存の形のまま読み込めますでしょうか。
お手数をおかけしますが宜しくお願い致します。
#追記
python
1df = pd.read_excel('sample.xlsx',header=8,encoding='shift_jis', usecols=[0,1,2,51]) 2
df['***']で指定された列をstring型で読み込みたい、ということですか?
strで読み込んだのですが、[003]と読み込みたいのですが、[3.0]などとなってしまいます。。
「strで読み込んだ」というのはdtypeを指定して読み込んだということですか?
はい。「.astype(np.str)」で読み込んだのですが・・・
pd.read_excelのキーワード引数にdtypeというものがあります。コラムごとに型を指定して読み込んで見てください。astypeは読み込んだあとの型変換なので、最初のエクセルの読み込み時にfloatになったものは戻せません。
今、追記したかたちで、readしているのですが…ここで指定するのでしょうか?そうすると、データフレーム全体が指定したdtypeで読み込まれるのでしょうか?
dtype=strとすれば全体に対して、dtype={"a":np.float64, "b":str}とすればコラムごと指定になると思います。
できました!ありがとうございます;; もし可能であれば、回答してくれますか?ベストアンサーに選ばせてください。宜しくお願い致します。

回答2件
あなたの回答
tips
プレビュー