我有一个有点复杂的问题我被困住了,
我从我的json文件中得到了这个数据帧。
time other_json value
11:20 {'column1':'S', 'column2': '0000', 'column3': 'jj'} 10
11:25 {'column1':'50', 'column2': '11', 'column3': '12'} 1
11:30 {'column4':'50', 'column6': '11'} 11我想要的结果是有一个最终的数据帧,格式如下:
time column1 column2 column3 column4 column6 value
11:20 S 0000 jj Nan Nan 10
11:25 50 11 12 Nan Nan 1
11:30 Nan Nan Nan 11 12 11如果你有任何想法我可以做到这一点。谢谢
发布于 2019-07-31 23:05:53
df = pd.DataFrame({'time': ['11:20', '11:25', '11:30'],
'other_json': [{'column1':'S', 'column2': '0000', 'column3': 'jj'},
{'column1':'50', 'column2': '11', 'column3': '12'},
{'column4':'50', 'column6': '11'}],
'value': [10, 1, 11]})
pd.concat([df[['time', 'value']], pd.DataFrame.from_records(df.other_json.values)], axis=1)输出:
<table border="1" class="dataframe">\n <thead>\n <tr style="text-align: right;">\n <th></th>\n <th>time</th>\n <th>value</th>\n <th>column1</th>\n <th>column2</th>\n <th>column3</th>\n <th>column4</th>\n <th>column6</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>11:20</td>\n <td>10</td>\n <td>S</td>\n <td>0000</td>\n <td>jj</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>1</th>\n <td>11:25</td>\n <td>1</td>\n <td>50</td>\n <td>11</td>\n <td>12</td>\n <td>NaN</td>\n <td>NaN</td>\n </tr>\n <tr>\n <th>2</th>\n <td>11:30</td>\n <td>11</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>50</td>\n <td>11</td>\n </tr>\n </tbody>\n</table>
发布于 2019-07-31 23:06:07
我找到了一个小的解决方案,但我不确定它是否是最优的
result=pd.DataFrame()
dict_= {}
for i in range (0,mydataframe.shape[0]):
dict_[i]=mydataframe.other_json[i]
df1=pd.DataFrame([dict_[i]])
result = result.append(df1, sort=False)然后,我将连接旧的数据帧
https://stackoverflow.com/questions/57293703
复制相似问题