2017-01-05 8 views
0

長さが4の値を持つ特定の列を持つパンダのデータフレームがあります。長さが3の場合は、値の先頭に「0」を追加します。たとえば、現在の値の長さに基づいてパンダのデータフレームの値を変更

a b c  
1 2 0054 
3 6 021 
5 5 0098 
8 2 012 

したがって、列Cでは、2番目の行を '0021'に、最後の行を '0012'に変更したいと考えています。値はすでに文字列です。私はやってみた:

df.loc[len(df['c']) == 3, 'c'] = '0' + df['c'] 

しかし、それはうまくいきません。助けてくれてありがとう! Cでのタイプは、あなたがこのような何かを行うことができますint型である場合

+1

基本的に 'df ['c'] = df ['c']とするだけです。str.zfill(4)' – EdChum

答えて

1

は:

df['C'].apply(lambda x: ('0'*(4-len(str(x))))+str(x) if(len(str(x)) < 4) else str(x)) 

ラムダ関数では、私はxの桁/文字の数が4未満かどうかを確認してください。はいの場合は、前にゼロを追加して、xの桁数/文字数が4になるようにします(埋め込みとも呼ばれます)。そうでなければ、値を文字列として返します。

型が文字列の場合は、str()関数呼び出しを削除できますが、いずれの方法でも動作します。

関連する問題