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)