如何在 Python 中将 Pandas DataFrame 转换为 JSON?
Pandas 是一个流行的 Python 库,用于数据处理和分析。在使用 Pandas 的过程中,一个常见的任务是将 DataFrame 转换为 JSON(JavaScript 对象表示法)格式,这是一种轻量级的数据交换格式,广泛用于 Web 应用程序。从 Pandas DataFrame 到 JSON 的转换对于数据共享、数据存储以及不同编程语言之间的数据传输非常有用。
在本教程中,我们将讨论如何使用内置的 Pandas 函数将 Pandas DataFrame 转换为 JSON,探索转换的不同选项和参数,并提供处理特定场景的示例。
将 Pandas DataFrame 转换为 JSON
在 Python 的 pandas 库中,我们可以利用 DataFrame.to_json() 函数将 pandas DataFrame 转换为 JSON 格式。此函数提供了各种自定义选项,使我们能够获得所需的 JSON 格式。在接下来的部分中,我们将深入探讨此函数的可接受参数,并更详细地检查自定义选项。
以下是一些可在 DataFrame.to_json() 函数中用于将 pandas DataFrame 转换为 JSON 的重要参数及其可能值:
path_or_buf - 生成的 JSON 将保存到的输出位置。它可以是文件路径或缓冲区对象。默认值为 None。
orient - 生成的 JSON 的格式。可能的值为 'split'、'records'、'index'、'columns' 和 'values'。默认值为 'columns'。
date_format - DataFrame 中类似日期列使用的日期格式。它可以是任何有效的日期时间格式字符串。默认值为 None。
double_precision - JSON 中浮点数的精度。它可以是一个整数,指定要包含的小数位数。默认值为 10。
force_ascii - 是否将非 ASCII 字符编码为其 Unicode 转义序列。默认值为 True。
date_unit - 类似日期列中时间戳的单位。可能的值为 's'(秒)、'ms'(毫秒)和 'us'(微秒)。默认值为 'ms'。
让我们来看几个示例,以更好地了解 DataFrame.to_json() 函数的使用方法。
示例 1:基本用法
请考虑以下代码。在此代码中,我们创建了一个名为 array_data 的 2×2 NumPy 数组,其中包含四个字符串值。然后,我们将此数组转换为名为 df 的 pandas DataFrame,列名为 'col1' 和 'col2'。最后,我们使用 to_json() 函数将 DataFrame 转换为 JSON 字符串,并使用 print() 函数将其打印到控制台。
import numpy as np import pandas as pd # create a NumPy array with two rows and two columns array_data = np.array([['1', '2'], ['3', '4']]) # convert the NumPy array into a pandas DataFrame with column names df = pd.DataFrame(array_data, columns=['col1', 'col2']) # convert the DataFrame to a JSON string json_data = df.to_json() # print the resulting JSON string print(json_data)
输出
执行后,将产生以下输出
{"col1":{"0":"1","1":"3"},"col2":{"0":"2","1":"4"}}
示例 2:将 DataFrame 转换为 JSON
现在,让我们看一个如何使用这些参数在 DataFrame.to_json() 函数中将 pandas DataFrame 转换为 JSON 的示例。
请考虑以下代码。在此示例中,我们将 path_or_buf 参数设置为 'output.json' 以将 JSON 数据保存到名为 'output.json' 的文件中。我们将 orient 参数设置为 'records' 以将 JSON 格式化为记录列表。
我们还将 date_format 参数设置为 'iso' 以对类似日期的列使用 ISO 日期格式,并将 double_precision 参数设置为 2 以包含浮点数的两位小数。最后,我们将 force_ascii 设置为 False 以保留非 ASCII 字符,并将 date_unit 设置为 'ms' 以使用毫秒作为时间戳的单位。
import pandas as pd
# create a sample DataFrame
df = pd.DataFrame({
'Name': ['John', 'Jane', 'Bob'],
'Age': [30, 25, 40],
'Salary': [50000.0, 60000.0, 70000.0],
'Join_date': ['2022-01-01', '2021-06-15', '2020-11-30']
})
# convert the DataFrame to JSON
json_data = df.to_json(
path_or_buf='output.json',
orient='records',
date_format='iso',
double_precision=2,
force_ascii=False,
date_unit='ms'
)
# print the resulting JSON
print(json_data)
输出
执行后,它将创建一个名为“output.json”的新文件,文件内容如下所示
[
{ "Name": "John", "Age": 30, "Salary": 50000.0, "Join_date": "2022-01-01" },
{ "Name": "Jane", "Age": 25, "Salary": 60000.0, "Join_date": "2021-06-15" },
{ "Name": "Bob", "Age": 40, "Salary": 70000.0, "Join_date": "2020-11-30" }
]
结论
总之,在 Python 中将 pandas DataFrame 转换为 JSON 格式是一个简单的过程,可以使用 pandas 库提供的 to_json() 方法来完成。
此方法允许各种自定义,例如指定 JSON 输出格式、日期格式和精度。它还提供将生成的 JSON 字符串写入文件的功能,从而可以轻松地与其他系统共享数据。通过对 to_json() 方法及其参数的基本了解,您可以轻松地将 pandas DataFrame 转换为 JSON 格式,以用于各种应用程序。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP