1
としてスライスし、データフレームのシリーズを使用して:サブ私のようなデータフレームを持って終了
BLOCKQUOTE
df
Out[458]:
strings
0 lui sau chun
1 d1420152
2 98764879333
3 minglee
4 g1927384
5 hannah
私がやりたい、何が2 /第三ののを抽出することですstrings列の各値の文字列。ご覧のように、各ストリングの長さが違うので、2/3の位置をスライスオフすることも異なります。私の目標出力は次のようになります。
BLOCKQUOTE
df
Out[459]:
strings substring
0 lui sau chun liu sau
1 d1420152 d1420
2 98764879333 98764879
3 minglee ming
4 g1927384 g1927
5 annah hann
を私が試した:
x=(df['strings'].str.len()*2/3).apply(np.floor).astype(int)
df['strings'].str.slice(0,x)
をしかし、これはちょうど私に次のような出力が得られた:
BLOCKQUOTEを
Out[451]:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
Name: strings, dtype: float64
誰でも助けてもらえますか?まずで新しい列を作成し、apply
:
print (df['strings'].apply(lambda x: x[:int(len(x)*2/3)]))
0 lui sau
1 d1420
2 9876487
3 ming
4 g1927
5 hann
Name: strings, dtype: object
別の解決策:
は
私の答えが役に立ったら、[accept](http://meta.stackexchange.com/a/5235/295067)それを忘れないでください - 答えの横にあるチェックマーク( '✓')をクリックしてくださいそれを灰色で塗りつぶして、塗りつぶしてください。ありがとう。 – jezrael