gpt4 book ai didi

python - 将具有字典值的系列值转换为 DataFrame。不是系列本身

转载 作者:行者123 更新时间:2023-12-01 01:31:59 25 4
gpt4 key购买 nike

我的系列看起来像这样:

d1 = {'Class': 'A', 'age':35, 'Name': 'Manoj'}
d2 = {'Class': 'B', 'age':15, 'Name': 'Mot'}
d3 = {'Class': 'B', 'age':25, 'Name': 'Vittoo'}

ser = [d1, d2, d3]

dummy = pd.Series(ser)
dummy
0 {'Class': 'A', 'age': 35, 'Name': 'Manoj'}
1 {'Class': 'B', 'age': 15, 'Name': 'Mot'}
2 {'Class': 'B', 'age': 25, 'Name': 'Vittoo'}

当我使用 to_frame 函数时,它会执行以下操作:

dummy.to_frame()

0
0 {'Class': 'A', 'age': 35, 'Name': 'Manoj'}
1 {'Class': 'B', 'age': 15, 'Name': 'Mot'}
2 {'Class': 'B', 'age': 25, 'Name': 'Vittoo'}

但我想要得到的是:

Class   Name    age
0 A Manoj 35
1 B Mot 15
2 B Vittoo 25

我已经尝试过,效果很好:

df = pd.DataFrame(dummy)
df = df[0].apply(pd.Series)
df

但感觉效率非常低,因为我需要将 Series 转换为数据帧,然后再次将 Series 函数应用于完整的数据帧。由于我正在处理数百万行,我想知道是否有更有效的解决方案。

最佳答案

使用DataFrame构造函数代替Series构造函数:

d1 = {'Class': 'A', 'age':35, 'Name': 'Manoj'}
d2 = {'Class': 'B', 'age':15, 'Name': 'Mot'}
d3 = {'Class': 'B', 'age':25, 'Name': 'Vittoo'}

ser = [d1, d2, d3]

df = pd.DataFrame(ser)
print (df)
Class Name age
0 A Manoj 35
1 B Mot 15
2 B Vittoo 25
<小时/>

如果输入数据是由字典存储的Series,则在DataFrame构造函数之前将其转换为列表,则不需要to_frame:

dummy = pd.Series(ser)

df = pd.DataFrame(dummy.values.tolist())
print (df)
Class Name age
0 A Manoj 35
1 B Mot 15
2 B Vittoo 25

关于python - 将具有字典值的系列值转换为 DataFrame。不是系列本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52775450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com