CSVデータを抽出【空白除外】、データ加工について


やりたいこと：  
csvファイルのデータを抽出し、B列に空白があれば除外した後に文字列を追加します。

CSVのデータ

[code]

    A       B      C       D
    アメリカ  1234   空白    ワシントン
    カナダ　　空白　 バンクーバー空白
    日本    2345　　東京     空白
    イタリア　 空白　　空白     空白
    
[/code]

①抽出したいデータ下記のように表示します。

[code]

    1234
    2345
    
[/code]

②最終的にこちらの形式でデータを加工して表示したいです。

[code]

    Number/1234
    Number/2345
    
[/code]

こちらのコードを記載しましたが下記のように表示されます。

[code]

    import os
    import json
    import pandas as pd
    
    #CSVファイルの読み込み
    df1 = pd.read_csv('test.csv',encoding='utf_8_sig')
    
    #B列だけ読み込み
    df_i =  df1[["B"]] 
    
    #空白を除外
    df_i = df1[df1["B"].str.contains("",na=False)]
    
    #1行ごとをループさせて空白を含まない
    for j in range(len(df_i)):
     a =''.join([f"{data}"for column,data in df_i.iloc[j].iteritems()])
    
     s ='Number/'+a
     print(s)
    
[/code]

出力結果

[code]

    print(s)
    
    Number/アメリカ1234nanワシントンnan....
    
[/code]

わかる方いらっしゃいましたらご教示願います。  
お手数ですが、宜しくお願いいたします。




[pandas.read_csv](https://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.read_csv.html#pandas-read-csv) の `converters`
keyword を使う方法です。

[code]

    import pandas as pd
    
    s = '\n'.join(filter(None,
      pd.read_csv(
        'test.csv',
        usecols=['B'], encoding='utf_8_sig', squeeze=True,
        converters={
          'B': lambda x: 'Number/'+x if x else x
        })))
    
    print(s)
    =>
    Number/1234
    Number/2345
    
[/code]




CSVということですが, CSVの形式ではないので, CSVの間違いなのかコードの問題なのか分かりません。  
とりあえず以下のような CSVを用意して試してみました

[code]

    A,B,C,D
    アメリカ,1234,,ワシントン
    カナダ,,バンクーバー,
    日本,2345,東京,
    イタリア,
    
[/code]

プログラムはこんな感じ

[code]

    import pandas as pd
    
    df = pd.read_csv(csvf)
    for c in df.B.dropna():
      print(f'Number/{int(c)}')
    
[/code]

以下出力

[code]

    Number/1234
    Number/2345
    
[/code]

