

Pandasで以下のようなCSVファイルをDFとして読み込みました。  
このDF内の、郵便番号と住所を別のコラムにしたいです。

[![画像の説明をここに入力](https://i.stack.imgur.com/WqIEh.jpg)](https://i.stack.imgur.com/WqIEh.jpg)

下記のコードを試しました。

[code]

    gyoumu_add_csv['split'] = gyoumu_add_csv['A'].str.split(' ')
    gyoumu_add_csv['A1'] = gyoumu_add_csv['split'].str.get(0)
    gyoumu_add_csv['A2'] = gyoumu_add_csv['split'].str.get(1)
    
[/code]

しかし、以下のようなエラーが出ます。

[code]

    C:\Users\ichir\anaconda3\lib\site-packages\ipykernel_launcher.py:1: SettingWithCopyWarning: 
    A value is trying to be set on a copy of a slice from a DataFrame.
    Try using .loc[row_indexer,col_indexer] = value instead
    
[/code]

どうすれば住所を分けることができるのでしょうか？  
よろしくお願いします。


CC BY-SA 4.0
2022-02-06T13:09:35.550
86177
2022-02-07T01:18:08.830
2022-02-07T01:18:08.830
3060
48948
question
python pandas
コラムの値を空白文字で区切り、別のコラムに分割したい


[pandas.Series.str.split](https://pandas.pydata.org/docs/reference/api/pandas.Series.str.split.html)
には次のように記されています

[code]

    Notes
    The handling of the n keyword depends on the number of found splits:
    +   If found splits > n, make first n splits only
    +   If found splits <= n, make all splits
    +   If for a certain row the number of found splits < n, append None for padding up to n if expand=True
    
    If using expand=True, Series and Index callers return DataFrame and MultiIndex objects, respectively.
    Use of regex=False with a pat as a compiled regex will raise an error.
    
[/code]

[code]

    df[['A1', 'A2']] = df['A'].str.split(' ', n=1, expand=True)
    
[/code]


CC BY-SA 4.0
2022-02-06T14:54:03.987
86179
2022-02-06T14:54:03.987
43025
86177
answer

[code]

    import pandas as pd
    import io
    
    csv_data = '''
    A
    〒196-0022 東京都昭島市中神町1-23-20
    〒190-0142 東京都あきる野市伊奈446-3
    〒111-0025 東京都台東区東浅草2-21-5
    〒124-0001 東京都葛飾区小菅4-21-11 エレガンス綾瀬5
    〒143-0024 東京都大田区中央6-28-5
    '''
    df = pd.read_csv(io.StringIO(csv_data))
    
    # extract and join
    df = df.join(df['A'].str.extract(r'(?P<A1>〒\d{3}-\d{4})\s+(?P<A2>.*)'))
    
    print(df.to_markdown(index=False))
    
[/code]

A | A1 | A2  
---|---|---  
〒196-0022 東京都昭島市中神町1-23-20 | 〒196-0022 | 東京都昭島市中神町1-23-20  
〒190-0142 東京都あきる野市伊奈446-3 | 〒190-0142 | 東京都あきる野市伊奈446-3  
〒111-0025 東京都台東区東浅草2-21-5 | 〒111-0025 | 東京都台東区東浅草2-21-5  
〒124-0001 東京都葛飾区小菅4-21-11 エレガンス綾瀬5 | 〒124-0001 | 東京都葛飾区小菅4-21-11 エレガンス綾瀬5  
〒143-0024 東京都大田区中央6-28-5 | 〒143-0024 | 東京都大田区中央6-28-5


CC BY-SA 4.0
2022-02-06T17:00:24.273
86181
2022-02-06T17:00:24.273
47127
86177
answer