如何将给定 csv 文件中的列(x1,x2,x3,x4,y1,y2,y3,y4)的数据帧转换为系列,而无需手动添加数据

问题描述 投票:0回答:1

如何将给定 csv 文件中的列(x1,x2,x3,x4,y1,y2,y3,y4)的数据帧转换为系列(s1,s2,s3,s4),而无需手动添加数据。系列必须类似于 (x,y) 格式。并再次将该系列转换为数据帧以获得描述性静态数据,并使用 Matplotlib 库中的正确方法为每个数据集在 Python 中绘制散点图enter image description here

The way I try

python pandas jupyter
1个回答
1
投票

要将给定 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)。

© www.soinside.com 2019 - 2024. All rights reserved.