使用Python列表和字典创建Pandas DataFrame

版权申诉
0 下载量 174 浏览量 更新于2024-09-11 收藏 331KB PDF 举报
"这篇文章主要介绍了如何使用Python的Pandas库从列表或字典创建DataFrame对象。通常,我们使用`read_excel`、`read_csv`或`read_sql`等函数导入数据,但在处理少量数据或需要自定义计算时,直接创建DataFrame会更方便。在创建DataFrame时,可以使用`from_dict`、`from_records`、`from_items`或DataFrame的构造函数,但这些方法的具体用法可能让人混淆。作者通过实例展示了如何通过不同方法生成DataFrame,并以3个虚构公司的3个月销售数据为例进行说明。" 在Python中,Pandas的DataFrame是一种强大的数据结构,常用于数据分析。创建DataFrame的一个常见方式是从Python的数据结构,如列表或字典出发。当使用列表和字典创建DataFrame时,需要注意它们之间的区别: 1. 字典列表:在这种方法中,每个元素都是一个字典,字典的键成为DataFrame的列名,而值则对应于列中的数据。例如: ```python sales = [{'account': 'JonesLLC', 'Jan': 150, 'Feb': 200, 'Mar': 140}, {'account': 'AlphaCo', 'Jan': 200, 'Feb': 210, 'Mar': 215}, {'account': 'BlueInc', 'Jan': 50, 'Feb': 90, 'Mar': 95}] df = pd.DataFrame(sales) ``` 这种方式创建的DataFrame,列名基于字典的键,行数据则是字典的值。 2. 字典(列优先):如果希望以列优先的方式创建DataFrame,可以使用`from_dict`方法,将字典的键作为行索引,值作为列: ```python sales_dict = {'account': ['JonesLLC', 'AlphaCo', 'BlueInc'], 'Jan': [150, 200, 50], 'Feb': [200, 210, 90], 'Mar': [140, 215, 95]} df = pd.DataFrame.from_dict(sales_dict, orient='index') ``` 使用`orient='index'`参数,使得字典的键变成DataFrame的行索引,而值则作为列。 3. 记录列表(元组或列表):`from_records`方法适用于元组列表或列表的列表,其中每个元素代表一行数据: ```python records = [('JonesLLC', 150, 200, 140), ('AlphaCo', 200, 210, 215), ('BlueInc', 50, 90, 95)] df = pd.DataFrame.from_records(records, columns=['account', 'Jan', 'Feb', 'Mar']) ``` 在这个例子中,元组的每个元素映射到DataFrame的一列。 4. 元组字典(from_items):`from_items`方法接受一个元组的元组,每个元组由列名和对应的值组成: ```python items = [('account', ['JonesLLC', 'AlphaCo', 'BlueInc']), ('Jan', [150, 200, 50]), ('Feb', [200, 210, 90]), ('Mar', [140, 215, 95])] df = pd.DataFrame.from_items(items, columns=['account', 'Jan', 'Feb', 'Mar']) ``` 这种方法可以更直接地控制列名和对应的值。 理解这些创建DataFrame的方法对于高效地处理数据至关重要。此外,Pandas还支持从其他数据源如SQL数据库、HTML表格等导入数据,以及通过`pd.concat`、`pd.merge`等函数对DataFrame进行操作。在生成Excel报表时,可以使用`to_excel`方法将DataFrame导出为Excel文件,以便于进一步的分享和分析。掌握这些基本技能将极大地提升你在数据分析过程中的效率。