首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从另一个数据帧的列组成一个数据帧

从另一个数据帧的列组成一个数据帧
EN

Stack Overflow用户
提问于 2019-07-31 22:58:05
回答 2查看 64关注 0票数 1

我有一个有点复杂的问题我被困住了,

我从我的json文件中得到了这个数据帧。

代码语言:javascript
运行
复制
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

我想要的结果是有一个最终的数据帧,格式如下:

代码语言:javascript
运行
复制
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

如果你有任何想法我可以做到这一点。谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-07-31 23:05:53

代码语言:javascript
运行
复制
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)

输出:

代码语言:javascript
运行
复制
<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>

票数 1
EN

Stack Overflow用户

发布于 2019-07-31 23:06:07

我找到了一个小的解决方案,但我不确定它是否是最优的

代码语言:javascript
运行
复制
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)

然后,我将连接旧的数据帧

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57293703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档