首页 > 解决方案 > 向 pandas 数据框添加新列并插入与现有数据对应的数据

问题描述

我有一个熊猫数据框,其中包含这样的列。

列:[jobId、trainingInput、createTime、startTime、endTime、状态、trainingOutput、etag、errorMessage、标签]。

trainingInput 是一个字典,我在其中剥离部分数据并为数据框创建一个新列“serviceAccount”。我在新列中得到随机数据。

数据框示例:

trainingInput = {'scaleTier': 'CUSTOM', 'masterType': 'n2-highmem-4', 'packageUris': ['gs:/marketprice_aitp-0.0.0.tar.gz'] 'pythonVersion': '3.7', 'serviceAccount': 'projects/kk1'}

serviceAccount 应该是 - 'projects/kk1' 并且应该插入到相应的 trainingInput 中。

**Expected output:**
trainingInput                                  serviceAccount
{'scaleTier': 'CUSTOM', 'masterType':           projects/kk1
 'n2-highmem-4', 'packageUris': 
['gs:/marketprice_aitp-0.0.0.tar.gz'] 
'pythonVersion': '3.7', 
'serviceAccount': 'projects/kk1'}


但是我得到的是基于下面代码的 serviceAccount 的随机数据。

k_1  = df['trainingInput'].values
    temp =[]
    for i in k_1:
        m= json.dumps(i)
        k = json.loads(m)
        temp.append(k['serviceAccount'])
        try:
                df5 =pd.DataFrame(temp)
              #  df.merge(pd.DataFrame(data=[df5.values] * len(df), columns=df5.index, #index=df.index), left_index=True, right_index=True)
                df['serviceaccount'] =k['serviceAccount']
                # df['region'] = k['region']
        except KeyError:
                df['serviceaccount'] = 'None'

我也尝试了此处评论的合并。但我收到错误“ValueError:缓冲区的维数错误(预期为 1,得到 2)”。请让我知道你的想法。谢谢。

标签: python-3.xpandasdataframe

解决方案


推荐阅读