

CSVからpandasで読み取った"/"で数字のまとまりごとに区切ってある文字列（OIDカラムの数字の文字列）をsplitで分割して再度、リスト化したいのですが、タイトルにあるエラーで上手く実装できません。  
何かアドバイスを頂ければ幸いです。  
よろしくお願いします。

[code]

    read_csvの結果
                                      OID
    0    1618544796/1043253441/1468827215
    1    1618544796/1043253441/1468827215
    2    1618544796/1043253441/1468827215
    3    1618544796/1043253441/1468827215
    4    1618544796/1043253441/1468827215
    ..                                ...
    197                               NaN
    198                        1714135326
    199                        1714135326
    200                        1714135326
    201                               NaN
    
    [202 rows x 1 columns]
    
[/code]

[code]

    import pandas as pd
    
    file0 = "./node_file2.csv"
    file1 = "./node_file3.csv"
    
    f0 = pd.read_csv(file0, usecols=[0])
    f1 = pd.read_csv(file1, usecols=[0])
    read_oid0 = pd.read_csv(file0, usecols=[11])
    read_oid1 = pd.read_csv(file1, usecols=[8])
    
    split_oid0 = read_oid0.split('/', expand =True)
    print(read_oid0)
    
[/code]


CC BY-SA 4.0
2020-05-17T11:36:41.510
66717
2020-05-17T13:47:52.113
2020-05-17T11:39:43.157
34463
34463
question
python python3 pandas csv
pandasで'DataFrame' object has no attribute 'split'のエラーを解決したい


この記事の応用で、column名を指定して.strを追加すれば良いでしょう。  
[pandasの文字列を区切り文字や正規表現で複数の列に分割](https://note.nkmk.me/python-pandas-split-
extract/)

以下のようになります。

[code]

    split_oid0 = read_oid0['OID'].str.split('/', expand =True)
    
[/code]

ただし、そうすると`NaN`とか`None`になるところも出てきます。  
元がこんなデータだった場合、

[code]

                                    OID
    0  1618544796/1043253441/1468827215
    1  1618544796/1043253441/1468827215
    2  1618544796/1043253441/1468827215
    3  1618544796/1043253441/1468827215
    4  1618544796/1043253441/1468827215
    5                               NaN
    6                        1714135326
    7                        1714135326
    8                        1714135326
    9                               NaN
    
[/code]

こんな結果になります。

[code]

                0           1           2
    0  1618544796  1043253441  1468827215
    1  1618544796  1043253441  1468827215
    2  1618544796  1043253441  1468827215
    3  1618544796  1043253441  1468827215
    4  1618544796  1043253441  1468827215
    5         NaN         NaN         NaN
    6  1714135326        None        None
    7  1714135326        None        None
    8  1714135326        None        None
    9         NaN         NaN         NaN
    
[/code]

必要ならば、この記事を応用して、空文字列なり`0`なりにすれば良いでしょう。  
[pandasで欠損値NaNを除外（削除）・置換（穴埋め）・抽出](https://note.nkmk.me/python-pandas-nan-
dropna-fillna/)

以下は空文字列にしています。

[code]

    split_oid0 = split_oid0.fillna('')
    
[/code]

こんな結果になります。

[code]

                0           1           2
    0  1618544796  1043253441  1468827215
    1  1618544796  1043253441  1468827215
    2  1618544796  1043253441  1468827215
    3  1618544796  1043253441  1468827215
    4  1618544796  1043253441  1468827215
    5
    6  1714135326
    7  1714135326
    8  1714135326
    9
    
[/code]


CC BY-SA 4.0
2020-05-17T13:47:52.113
66719
2020-05-17T13:47:52.113
26370
66717
answer