2016-04-15 12 views
0

私はTDLINXという整数列を持つpandasデータフレームを持っています。私は先行ゼロを持つ文字列に変換しようとしています。すべての値は7文字で、先行ゼロが付いています。そこで、図7は、これは私が使用したコードであるPandasコマンドが意図せずに行間でデータを移動する

を「0000007」になるだろう:

df_merged_total['TDLINX2'] = df.TDLINX.apply(lambda x: str(x).zfill(7)) 

一見すると、これが動作するように見えたが、私は、ファイルのさらに下に行ったとして、私はTDLINX2の値ことに気づきましたシフトし始めました。これを引き起こしている可能性があり、それを防ぐために何ができますか?

+0

はあなたの問題を実証する自己完結型の例を示してください。 – BrenBarn

+2

あなたのインデックスが 'df_merged_total'と' df'の間で整列していなければ、 'df_merged_total.index.difference(df.index)'が表示するオフセットを観察しますか? – EdChum

+0

あなたはそうです。それは間違いなく問題です。ありがとう! –

答えて

2

あなたはこのような何かを行うことができます:

>>> df = pd.DataFrame({"col":[1, 33, 555, 7777]}) 
>>> df["new_col"] = ["%07d" % x for x in df.col] 

>>> df 

    col new_col 
0  1 0000001 
1 33 0000033 
2 555 0000555 
3 7777 0007777 
関連する問題