繁体   English   中英

Pandas dict 列到列

Pandas dict column to column

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想提取 dict ratings列中的overall键并将其添加为单独的列。 这是我迄今为止尝试过的:

def try_literal_eval(e):
    try:
        return ast.literal_eval(e)
    except ValueError:
        return {'overall': 0}

res = pd.DataFrame(df['ratings'].apply(try_literal_eval).tolist())
output = pd.concat((df.drop('ratings', 1), res), axis=1)
output

df

customer_id    rating 
44224         {'overall': 5, 'description': 3}
55243         {'overall': 3, 'description': 2}

所需的输出_df

customer_id    overall_rating
44224          5
55243          3
2 个回复

df['overall_rating'] = df['rating'].apply(lambda x: x.get('overall'))应该给你结果

c = ['customer_id','rating'] 
d = [[44224,{'overall': 5, 'description': 3}],
[55243,{'overall': 3, 'description': 2}]]
import pandas as pd
df = pd.DataFrame(d,columns=c)
print (df)
df['overall_rating'] = df['rating'].apply(lambda x: x.get('overall'))
print (df)

这个的输出是:

原始数据帧:

   customer_id                            rating
0        44224  {'overall': 5, 'description': 3}
1        55243  {'overall': 3, 'description': 2}

更新的数据帧:

   customer_id                            rating  overall_rating
0        44224  {'overall': 5, 'description': 3}               5
1        55243  {'overall': 3, 'description': 2}               3

或者你可以给:

df['overall_rating'] = pd.DataFrame([x for x in df['rating']])['overall']

这个输出也将是相同的:

c = ['customer_id','rating'] 
d = [[44224,{'overall': 5, 'description': 3}],
[55243,{'overall': 3, 'description': 2}]]
import pandas as pd
df = pd.DataFrame(d,columns=c)
print (df)
df['overall_rating'] = pd.DataFrame([x for x in df['rating']])['overall']
#df['overall_rating'] = df['rating'].apply(lambda x: x.get('overall'))
print (df)

原始数据帧:

   customer_id                            rating
0        44224  {'overall': 5, 'description': 3}
1        55243  {'overall': 3, 'description': 2}

更新的数据帧:

   customer_id                            rating  overall_rating
0        44224  {'overall': 5, 'description': 3}               5
1        55243  {'overall': 3, 'description': 2}               3

具有浮点值的字典和没有“整体”条目的字典的示例

c = ['customer_id','rating'] 
d = [[44224,{'overall': 5, 'description': 3}],
[55243,{'overall': 3, 'description': 2}],
[11223,{'overall': 1.5, 'description': 2}],
[12345,{'description':3}]]
import pandas as pd
df = pd.DataFrame(d,columns=c)
print (df)
df['overall_rating'] = df['rating'].apply(lambda x: x.get('overall'))
print (df)

这个的输出是:

输入数据帧

   customer_id                              rating
0        44224    {'overall': 5, 'description': 3}
1        55243    {'overall': 3, 'description': 2}
2        11223  {'overall': 1.5, 'description': 2}
3        12345                  {'description': 3}

更新后的数据帧是:

   customer_id                              rating  overall_rating
0        44224    {'overall': 5, 'description': 3}             5.0
1        55243    {'overall': 3, 'description': 2}             3.0
2        11223  {'overall': 1.5, 'description': 2}             1.5
3        12345                  {'description': 3}             NaN

尝试:

def try_literal_eval(e):
    try:
        return ast.literal_eval(e).get('overall', 0)
    except ValueError:
        return 0

df[['customer_id']].assign(overall_rating=df['ratings'].apply(try_literal_eval))
2 从 Pandas 列中分解 dict

我有以下 df: 我想把它转换成类似的东西: 等等... 我试过了 并使用 但没有人给出类似的东西。 有没有一种简单的方法可以将字典分解成列? ...

3 使用 dict 重新映射 pandas 列中的值,保留 NaN

我有一本看起来像这样的字典: di = {1: "A", 2: "B"} 我想将它应用到类似于以下的数据框的col1列: 要得到: 我怎样才能最好地做到这一点? 出于某种原因,与此相关的谷歌搜索术语仅向我显示有关如何从 dicts 制作列的链接,反之亦然:-/ ...

4 清理熊猫数据框中的字典列

我希望 B 列在几行中缺少键,例如第 2 行只有键 3,但缺少键 1 和键 2。 对于键 1,我想将值设置为 1,对于键 2,我想将值设置为 2,我想要的最终数据帧是` ...

5 熊猫数据框按列进行分组

我有一个这样的数据框: 我想把它转换成字典,按subject_id分组 如果我只有一个主题,那么我可以这样做: 但是由于我有几个主题,密钥列表重复,所以我不能直接使用 zip。 Dataframes 有一个.to_dict('index')方法,但在创建字典时我需要能够按特定列进行分 ...

6 字典列输出到标准熊猫列

我有一种情况,在使用 zip 函数后,我之前代码步骤的输出已存储为字典,但存储为 Pandas 列。 现在我想将此 dict 列的结果存储为标准 Pandas 列。 我使用的代码使用 zip 函数创建了 dict 列: 此代码的输出如下所示: 现在我想通过以下方式将当前以字典形式存在的 C ...

7 Pandas列dict拆分为新列和行

我在pandas dataframe列中有一个dict,输入是, 我想将列'A'中的dict键和值拆分为新列并拆分为行(取决于dict中的键数),基本上输出应该是这样的, ...

8 熊猫-将具有多个索引的字典映射到列

我有两个大型数据集,无法通过组合两个数据帧进行汇总。 我必须先在df_train上进行聚合,然后将值映射到df_test 。 df_train和df_test具有完全相同的id1和id2 ,但df_test具有更多样本。 我正在计算id1和id2上的目标均值,并将其存储为内存问题的字典 ...

9 使用字典重新映射熊猫数据框列

这个问题已经在这里有了答案: 用字典重新映射熊猫列中的值 8个答案 我是python的新手,所以如果这很明显,请多包涵。 我在数据框dff中有一个“年龄”列,其中包含值1到66。每个值都对应于字典di中的一个键,并且我正尝试将列中的值替换为字典中的相应值。 ...

10 使用熊猫从dict映射创建新列

我有一个具有“ Material Types列的数据框。 我有一个{'Material type, Value}的字典。 现在,当我尝试使用字典映射为同一列“物料”类型添加一列MAD_PER_MATERIAL时,在新形成的列中得到了NAN。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM