Python Pandas pandas.DataFrame.from_records函数方法的使用

pandas.DataFrame.from_records 是一个非常有用的函数,它可以从各种记录格式的数据中创建 DataFrame。可以从列表、元组、字典等创建 DataFrame。它对于从结构化数据(如数据库结果集)创建 DataFrame 非常有用。本文主要介绍一下Pandas中pandas.DataFrame.from_records方法的使用。

DataFrame.from_records(data,index = None,exclude = None,columns = None,coerce_float = False,nrows = None )源代码

将数据转换为DataFrame

参数

data : ndarray(结构化dtype),元组列表,dictDataFrame

index : 字符串,字段列表,类似数组

用作索引的数组字段,交替使用的一组特定输入标签

exclude :  序列(sequence),默认None

要排除的列或字段

columns : 序列(sequence),默认None

要使用的列名称。如果传递的数据没有与之关联的名称,

则此参数提供列的名称。否则,此参数指示结果中列的顺序

(数据中未找到的任何名称将变为全NA列)

coerce_float : boolean,默认为False

尝试将非字符串,非数字对象(如decimal.Decimal)的值转换为浮点.

SQL结果集很有用

nrows : int,默认None

如果数据是迭代器(iterator),则读取的行数

返回

df : DataFrame

例子

import pandas as pd
from collections import namedtuple

Item = namedtuple('Item', 'state area')
items = []

with open('unis.txt') as f: 
    for line in f:
        l = line.rstrip('\n') 
        if l.endswith('[edit]'):
            state = l.rstrip('[edit]')
        else:            
            i = l.index(' (')
            area = l[:i]
            items.append(Item(state, area))

df = pd.DataFrame.from_records(items, columns=['State', 'Area'])
print df

1)从字典列表创建 DataFrame

这是最常见的用法,将字典列表转换为 DataFrame。

import pandas as pd

data = [
    {"name": "Alice", "age": 25, "city": "New York"},
    {"name": "Bob", "age": 30, "city": "Los Angeles"},
    {"name": "Charlie", "age": 35, "city": "Chicago"}
]
df = pd.DataFrame.from_records(data)
print(df)

2)从元组列表创建 DataFrame

如果数据是元组列表,你需要提供列名。

import pandas as pd

data = [
    ("Alice", 25, "New York"),
    ("Bob", 30, "Los Angeles"),
    ("Charlie", 35, "Chicago")
]
columns = ["name", "age", "city"]
df = pd.DataFrame.from_records(data, columns=columns)
print(df)

3)使用 index 参数

可以使用 index 参数将某个字段设置为 DataFrame 的索引。

import pandas as pd

data = [
    {"name": "Alice", "age": 25, "city": "New York"},
    {"name": "Bob", "age": 30, "city": "Los Angeles"},
    {"name": "Charlie", "age": 35, "city": "Chicago"}
]
df = pd.DataFrame.from_records(data, index="name")
print(df)

4)使用 exclude 参数

可以使用 exclude 参数排除某些字段。

import pandas as pd

data = [
    {"name": "Alice", "age": 25, "city": "New York"},
    {"name": "Bob", "age": 30, "city": "Los Angeles"},
    {"name": "Charlie", "age": 35, "city": "Chicago"}
]
df = pd.DataFrame.from_records(data, exclude=["age"])
print(df)

相关文档Python Pandas 通过读取txt文件内容创建DataFrame

推荐阅读
cjavapy编程之路首页