2017-10-10 12 views
2

データセット(Excel)には1つの列がありますが、情報が多すぎます。タイムスタンプに基づいて表形式に変換したいと思います。私は時間、名前、URLのような列に変換したい。私はこれを達成するためにPython Pandasを使用しようとしています。Python Pandasを使用して列のタイムスタンプを抽出する方法

私はこのようなデータセットで探しています:

6/10/2017 8:40:34 AM 

James 

URL:.....(multiple rows) 

6/10/2017 8:45:34 AM 

Jenny 

URL:.... 

は、どのように私はPythonのパンダを使用して、これを行うことができますか?

+0

「URL」の値が複数あるか、「Time」、「Name」、および「URL」の複数のトリプレットがあるとしますか? – BenWurth

+0

データセットの行は、日時、名前、URL(1つ以上)などの順序に一致するグループに分けることができますか? –

+0

urlの複数の行は、その場所に基づいてデータを抽出できないことを意味します。だから私はタイムスタンプを最初に取得し、名前やURLのような他の変数を取得するためにタイムスタンプの場所を使用すると考えています。 –

答えて

0

一つの方法は、リシェイプが値が正確な順序

df = pd.DataFrame(np.reshape(df.values,(len(df)//3,3))) 
df.columns = ['Time', 'Name', 'URL'] 

    Time     Name URL 
0 6/10/2017 8:40:34 AM James URL:.....(multi rows) 
1 6/10/2017 8:45:34 AM Jenny URL:.... 

編集に提供される使用することです:ここでは別のアプローチがある

  1. 抽出時間STRを使用してpd.to_datetime
  2. 抽出URLを使用して.contains(URL)
  3. 他のすべての名前へ移動
  4. GroupNは3行ごとにNaNを埋め、重複を削除します。

    DF [ '時間'] = pd.to_datetime([ 'COL'] DF、誤差= '強制')[ 'COL' DF

    df.loc []。str.contains( 'URL' )、 'URL'] = df ['col']

    df ['Name'] = df [(df ['Time'])isnull()& df ['URL']。isnull())] .COL

    .ffill df.drop( 'COL'、軸= 1).groupby(df.index // 3)()。bfill()。drop_duplicates()

あなたはを取得

Time    URL      Name 
0 2017-06-10 08:40:34 URL:.....(multi rows) James 
3 2017-06-10 08:45:34 URL:....    Jenny 
+0

こんにちは私はデータのインデックスに位置を使用することはできません。複数の行は、時間が常に3,6,9などの列にあるとは限らないことを意味します。これらのタイムスタンプを見つける方法については混乱しています...私はそれらを最初に見つけ出し、時間データの場所に基づいてインデックスを作成します... –

+0

@ YunongLiu、編集を確認 – Vaishali

+0

ありがとうございました!私はあなたの方法を使ってそれに取り組んでいます。私はこの問題を解決できることを願っています。 –

0

ここには役立つアプローチがあります。

#create the dataframe 
df = pd.DataFrame({'time': ['6/10/2017 08:40:34 AM', '6/10/2017 08:45:34 AM'], 'name':['James', 'Jenny'], 'url':['www.yahoo.com', 'www.google.com']}) 

# Set the index of the dataframe to time 
indexed_df = df.set_index('time') 

# review the original dataframe 
df 
Out[11]: 
    name     time    url 
0 James 6/10/2017 08:40:34 AM www.yahoo.com 
1 Jenny 6/10/2017 08:45:34 AM www.google.com 

# check the newly indexed dataframe 
indexed_df 
Out[12]: 
         name    url 
time           
6/10/2017 08:40:34 AM James www.yahoo.com 
6/10/2017 08:45:34 AM Jenny www.google.com 

これが役立ちます。これはこの文書から取られましたhttps://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.set_index.html

+0

問題は私のデータセットが2つのレコードだけでなく、100があることです。 –

関連する問題