>>> type(required_data)
<class 'pandas.core.series.Series'>
>>> required_data
0 {u'duration': 79, u'startDate': u'2019-01-02T23:04:15Z',u'endDate': u'2019-01-02T23:05:35Z'}
1 {u'duration': 79, u'startDate': u'2019-01-02T23:04:15Z',u'endDate': u'2019-01-02T23:05:35Z'}
2 {u'duration': 79, u'startDate': u'2019-01-02T23:04:15Z',u'endDate': u'2019-01-02T23:05:35Z'}
3 {u'duration': 79, u'startDate': u'2019-01-02T23:04:15Z',u'endDate': u'2019-01-02T23:05:35Z'}
现在我要将其转换为以下格式的数据框
startDate endDate duration
0 '2019-01-02T23:04:15Z' '2019-01-02T23:05:35Z' 79
1 '2019-01-02T23:04:15Z' '2019-01-02T23:05:35Z' 79
2 '2019-01-02T23:04:15Z' '2019-01-02T23:05:35Z' 79
我尝试过以下方式
创建了一个空的数据框
required_df = pd.DataFrame()
required_data.apply(lambda x:required_df.append(x,ignore_index=True))
它没有给出期望的结果。请帮忙。
答案 0 :(得分:1)
您可以使用pd.DataFrame(list(requeired_data.values))
。然后提供干净的DataFrame:
>>> pd.DataFrame(list(requeired_data.values))
duration endDate startDate
0 79 2019-01-02T23:05:35Z 2019-01-02T23:04:15Z
1 79 2019-01-02T23:05:35Z 2019-01-02T23:04:15Z
2 79 2019-01-02T23:05:35Z 2019-01-02T23:04:15Z
3 79 2019-01-02T23:05:35Z 2019-01-02T23:04:15Z
答案 1 :(得分:1)
您的Series
基本上是字典列表。使用to_list()
将其转换为适当的列表,并实例化一个DataFrame似乎足够。
import pandas as pd
ser = pd.Series([{'duration' : 'hello', 'value' : 'world'}, {'duration' : 'hello', 'value' : 'world'}, {'duration' : 'hello', 'value' : 'world'}])
print(ser)
# 0 {'duration': 'hello', 'value': 'world'}
# 1 {'duration': 'hello', 'value': 'world'}
# 2 {'duration': 'hello', 'value': 'world'}
# dtype: object
df = pd.DataFrame(ser.to_list())
print(df)
# duration value
# 0 hello world
# 1 hello world
# 2 hello world