如何将给定 csv 文件中的列(x1,x2,x3,x4,y1,y2,y3,y4)的数据帧转换为系列(s1,s2,s3,s4),而无需手动添加数据。系列必须类似于 (x,y) 格式。并再次将该系列转换为数据帧以获得描述性静态数据,并使用 Matplotlib 库中的正确方法为每个数据集在 Python 中绘制散点图
要将给定 CSV 文件中 DataFrame 的列转换为系列而不手动添加数据,可以使用以下代码:
import pandas as pd
# Read the CSV file into a DataFrame
df = pd.read_csv("C:/Users/LENOVO/Desktop/New folder/Question1_w2083147/anscombe.csv")
# Extract the x columns and y columns
x_columns = ['x1', 'x2', 'x3', 'x4']
y_columns = ['y1', 'y2', 'y3', 'y4']
# Create a list to store the series
series_list = []
# Convert each x column and y column into a series and append to the list
for x_col, y_col in zip(x_columns, y_columns):
series = pd.Series(list(zip(df[x_col], df[y_col])), name=f'{x_col}_{y_col}')
series_list.append(series)
# Perform descriptive statistics on the series
for series in series_list:
print(series.describe())
# Convert the series list back to a DataFrame
df_new = pd.concat(series_list, axis=1)
# Plot scatterplots for each dataset
import matplotlib.pyplot as plt
for series in series_list:
plt.scatter(series.str[0], series.str[1])
plt.show()
在此代码中,我们首先使用
pd.read_csv()
将 CSV 文件读入 DataFrame。然后,我们定义要转换为系列的 x 列和 y 列。
接下来,我们创建一个名为
series_list
的空列表来存储该系列。我们迭代 x 和 y 列,使用 pd.Series()
将每对列转换为一系列,并将其附加到 series_list
。
为了获得描述性统计量,我们迭代
series_list
并使用 describe()
方法来计算每个系列的描述性统计量。
最后,我们使用
pd.concat()
将 series_list
中的系列组合回 DataFrame。然后,我们使用 Matplotlib 库中的 scatter()
函数来绘制每个数据集的散点图。使用 series.str[0]
访问 x 值,使用 series.str[1]
访问 y 值。
在运行此代码之前,请确保安装了必要的库(pandas 和 matplotlib)。