2017-12-11 15 views
1

私は、次のデータフレームdf有する:パンダ:TypeError例外:サポートされていないオペランドタイプ(S)関数適用 - :「ユニコード」と「ユニコード」

name event_time 
------------------------------------------ 
Mary [(S, 2017-12-03T03:40:20.000Z), (V, 2017-12-07T02:51:32.000Z)] 
Peter [(S, 2017-11-02T01:11:10.000Z), (V, 2017-11-19T07:23:12.000Z)] 
Andy [(S, 2017-12-01T10:31:15.000Z), (V, 2017-12-09T12:31:10.000Z)] 

を私はそれを見つけるために、次のコードを使用event_time分野における二つの要素の持続時間:

df['duration'] = df.event_time.apply(lambda x:x[1][1]-x[0][1]) 

は、しかし、私は次のエラーを得た:

TypeError unsupported operand type(s) for -: 'unicode' and 'unicode' 
TypeErrorTraceback (most recent call last) 
<ipython-input-7-7a191c6f2678> in <module>() 
----> 1 df['duration'] = df.event_time.apply(lambda x:x[1][1]-x[0][1]) 

/opt/conda/envs/python2/lib/python2.7/site-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds) 
    2218   else: 
    2219    values = self.asobject 
-> 2220    mapped = lib.map_infer(values, f, convert=convert_dtype) 
    2221 
    2222   if len(mapped) and isinstance(mapped[0], Series): 

pandas/src/inference.pyx in pandas.lib.map_infer (pandas/lib.c:62658)() 

<ipython-input-7-7a191c6f2678> in <lambda>(x) 
----> 1 df['duration'] = df.event_time.apply(lambda x:x[1][1]-x[0][1]) 

TypeError: unsupported operand type(s) for -: 'unicode' and 'unicode' 

私はここで間違っていたと思いますか?ありがとう!

+0

各 'df.event_time'の種類は何ですか?ユニコード文字列ですか?時差を計算しようとしているようです。 'x [1] [1]'と 'x [0] [1]'は 'lambda'の' unicode'ですが '-'演算子はサポートしていません。 – Galen

+0

あなたはdfから文字列形式の2つの異なる日付を引き出​​しているようですが、次にこれらの(ユニコード)文字列ではできないものを別のものから引き出しようとしています。おそらく長い文字列の日付形式をいくつかの数値やデータ構造に変換し、それをあなたがしなければならないものにする必要があるでしょう。 – Gary02127

答えて

2

私はto_datetimeを変換し、減算、あなたがstr[]によって選択値が必要と考えている:

s1 = pd.to_datetime(df['event_time'].str[1].str[1]) 
s2 = pd.to_datetime(df['event_time'].str[0].str[1]) 
df['duration'] = s1 - s2 
print (df) 
    name           event_time   duration 
0 Mary [(S, 2017-12-03T03:40:20.000Z), (V, 2017-12-07... 3 days 23:11:12 
1 Peter [(S, 2017-11-02T01:11:10.000Z), (V, 2017-11-19... 17 days 06:12:02 
2 Andy [(S, 2017-12-01T10:31:15.000Z), (V, 2017-12-09... 8 days 01:59:55 
関連する問題