1

のバリエーションのように見える値を持つスパース パンダ DataFrame/Series があります"AB1234:12, CD5678:34, EF3456:56"。効果のあるもの

"AB1234:12, CD5678:34, EF3456:56"
"AB1234:12, CD5678:34"
NaN
"GH5678:34, EF3456:56"
"OH56:34"

変換したいもの

["AB1234","CD5678", "EF3456"]
["AB1234","CD5678"]
NaN
["GH5678","EF3456"]
["OH56"]

この種の「二重描写」は困難であることが証明されています。できることはわかっていますが、機能していないように見えることや、「.split(",")」が空白を残すA = df["columnName"].str.split(",")など、いくつかの問題に遭遇しました。.split(", ")また、生成さAれた分割を反復すると、新しいリストが「フロート」として解釈されるようです。最後の 1 つは ipython の技術的な問題かもしれませんが、私もその問題を解決しようとしています。

1 種類だけでなく、2 種類の区切り記号で線引きする方法はありますか? そうでない場合、どのようにループを実行して内側のリストを反復処理しますか?

//編集: アポストロフィをコンマに変更 - それは私の失読症が始まっただけです

4

2 に答える 2

1

ここにあなたのデータフレームがあります

>>> df
                                 A
0  AB1234:12, CD5678:34, EF3456:56
1             AB1234:12, CD5678:34
2                             None
3             GH5678:34, EF3456:56
4                          OH56:34

そして今、私は and を使用splitreplaceて分割し', '、すべてを削除します':'

>>> df.A = [i.replace(':','').split(", ") if isinstance(i,str) else i for i in df.A]
>>> df.A
0    [AB123412, CD567834, EF345656]
1              [AB123412, CD567834]
2                              None
3              [GH567834, EF345656]
4                          [OH5634]
Name: A
于 2013-06-19T16:40:51.787 に答える