python pandasによるcsvの読み書き


excelのファイルで  
[![画像の説明をここに入力](https://i.stack.imgur.com/WgCJk.png)](https://i.stack.imgur.com/WgCJk.png)

「  
<https://www.leafkyoto.net/special/parfait/>  
<https://tabelog.com/kyoto/A2601/A260503/26001772/>  
」  
↑が記入されているセルが縦に連続しています

このように二種類のリンクが混合してる列があります。  
この隣に後者のリンクだけを抽出した列を作りたいと思っています。  
色々なサイトを巡っていますがpandasでのちょっとしたcsvの読み書きの書き方がどうしてもわからないのでご教授ください。  
列名は所与でtabelogという名前で作っておいて、その列に変換したurlを順に入れていく、、、ということは可能ですか？

[code]

    import csv
    import pandas as pd
    x = pd.read_csv('output.csv')
    y = []
    for z in x:
        y = x[x.find("https://tabelog.com"):]
    df = df.append(y)
    df.to_csv('output.csv', columns=['tabelog'])
    print("finished")
    
[/code]



[code]

    x = pd.read_csv('output.csv')
    
[/code]

の次に、

[code]

    print( x.shape )
    
[/code]

を追加して、xが 横２列（縦はExcelに入っているデータの行数）のデータフレームになっているか確認してください。  
質問にあるExcelの画面イメージではどこにもカンマ(,)が見当たらないので、read_csvで読み込むとxは横１列のデータフレームになっているのではないかと思います。  
read_csvは区切り文字(デフォールトは",")で分割して読み込むのですが、区切り文字がなければ区切られないまま（一続きで）１列のデータフレームになるはずです。

一つのセルに書かれた２つのリンクが何で区切られているのか画面では判断できないのですが、改行文字(LF("\n" :
文字コード:0x0A))で区切られているのだとすれば、

[code]

    x = pd.read_csv('output.csv',sep="\n")
    
[/code]

とすると、xが横２列のデータフレームになり、２列目には後ろ側(tabelog.comを含むほう）のリンクが入るはずです。

＝＝  
質問の下記のコードは、'tabelog'という列名がついた列のデータだけを書きだすように指定されています。

[code]

    df.to_csv('output.csv', columns=['tabelog'])
    
[/code]

ところが、質問に書かれたexcelのファイルは、１行目(列名のリストが書かれているはずの位置)に'tabelog'という列名が有るように見えません。Excelファイルの１行目に'tabelog'という列名が無ければ、read_csvで読み込んだデータフレームにも'tabelog'という列名はありません。  
「分割自体はできてると思うのですが、出力ができません。」というのは、「読み込んだCSVファイルに'tabelog'という列名が無いので、'tabelog'という列名を指定したら出力するものが無かったです」という事ではないでしょうか。

＝＝  
＜改善案＞  
１）  
Excelファイル(csvファイル)の１行目に  
「'mae'  
'tabelog'」  
のように、リンクを区切っているのと同じ文字列で区切った列名を書く。

２）

[code]

    x = pd.read_csv('output.csv',sep="\n")
    
[/code]

のように、正しい区切り文字を指定して、Excelファイル(csvファイル)を読み込む。

ーー余計な一言ーー  
"Excelファイル”というと、.xlsとか.xlsxとかの拡張子が付いたファイルが想像されます。  
CSVファイルはテキストファイルの一種なので、CSVファイルをExcelファイルと呼ぶのは避けたほうが良いと思います（誤解を生みかねないので）

