如何在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 DataFrames转换为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 − 时间戳的单位在类似日期的列中。可能的值是秒,毫秒,微秒。默认值为’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
# 创建示例 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']
})
# 将 DataFrame 转换为 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'
)
# 打印结果的 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" }
]
结论
总之,使用 pandas 库提供的 to_json() 方法将 pandas DataFrame 转换为 JSON 格式是一个简单的过程。
该方法允许各种自定义,例如指定 JSON 输出格式、日期格式和精度。它还提供了将结果 JSON 字符串写入文件的能力,使得与其他系统共享数据变得容易。通过基本了解 to_json() 方法及其参数,您可以轻松地将 pandas DataFrame 转换为 JSON 格式以供在各种应用程序中使用。