DataFrame.from_records(data,index = None,exclude = None,columns = None,coerce_float = False,nrows = None )源代码
将数据转换为DataFrame
。
参数: | data : index : 字符串,字段列表,类似数组 用作索引的数组字段,交替使用的一组特定输入标签 exclude : 序列(sequence),默认 要排除的列或字段 columns : 序列(sequence),默认 要使用的列名称。如果传递的数据没有与之关联的名称, 则此参数提供列的名称。否则,此参数指示结果中列的顺序 (数据中未找到的任何名称将变为全NA列) coerce_float : 尝试将非字符串,非数字对象(如 对 nrows : 如果数据是迭代器(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)