Pandas 是一个强大的数据处理库,它提供了多种方法来创建和操作数据帧(DataFrame)。如果你有一个包含字典列表的行,并希望从中创建一个新的数据帧,你可以使用 Pandas 的 from_records
方法或者将列表转换为字典后再使用 from_dict
方法。
from_records
import pandas as pd
# 假设你有以下的字典列表
data = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 35}
]
# 使用 from_records 方法创建数据帧
df = pd.DataFrame.from_records(data)
print(df)
from_dict
并指定 orient='records'
import pandas as pd
# 同样的字典列表
data = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 35}
]
# 使用 from_dict 方法创建数据帧
df = pd.DataFrame.from_dict(data, orient='records')
print(df)
如果你的字典列表中某些字典缺少某些键,Pandas 会默认将这些缺失的值填充为 NaN
(Not a Number)。
data = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob'}, # 缺少 'age' 键
{'name': 'Charlie', 'age': 35}
]
df = pd.DataFrame.from_records(data)
print(df)
解决方法:在创建数据帧之前,确保所有的字典都包含相同的键,或者在创建数据帧后使用 fillna
方法填充缺失值。
df.fillna(value={'age': 0}, inplace=True) # 用 0 填充缺失的 'age' 值
如果你的字典列表中的值类型不一致,Pandas 可能会自动推断数据类型,这有时会导致问题。
data = [
{'name': 'Alice', 'age': '25'}, # 'age' 是字符串类型
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 35}
]
df = pd.DataFrame.from_records(data)
print(df.dtypes)
解决方法:在创建数据帧之前,确保所有的值都是正确的数据类型,或者在创建数据帧后使用 astype
方法转换数据类型。
df['age'] = df['age'].astype(int) # 将 'age' 列转换为整数类型
领取专属 10元无门槛券
手把手带您无忧上云