gpt4 book ai didi

python - 传输数据创建新的数据帧来重新构造数据帧

转载 作者:行者123 更新时间:2023-12-01 08:34:30 25 4
gpt4 key购买 nike

我有一个 csv 文件,其中包含各行的数据。我想通过将所有行传输到列来创建数据框。我提供了以下示例数据框,用于复制 csv 中的数据。

data = pd.DataFrame()
data ['Name'] = ['A','B','C']
data ['Home'] = ['Z','Y','X']
data ['1-0'] = [2.2,3.1,3]
data['2-0'] = [1.5,5,8]
data ['2-1'] = [5,2,3]
data ['HW'] = [1.2,3.2,4]

我想将“1-0”、“2-0”、“2-1”列转换为新数据框的列,并将其相应的数据转换为新列,其中显示分数。第一列**名称**将用作新列,但所有分数都会重复。

以下是预期输出。

enter image description here

在新数据框中,第一列名称中的元素将被复制。第二列 Score 中的元素是旧数据框中的一些列名称。其余列(例如 HW)将被复制,与名称列相同。

我可以知道如何改造它吗?非常感谢您的建议。谢谢。泽普。

最佳答案

尝试融化:

data.melt(['Name','Home','HW']).sort_values('Name')

输出:

  Name Home   HW variable  value
0 A Z 1.2 1-0 2.2
3 A Z 1.2 2-0 1.5
6 A Z 1.2 2-1 5.0
1 B Y 3.2 1-0 3.1
4 B Y 3.2 2-0 5.0
7 B Y 3.2 2-1 2.0
2 C X 4.0 1-0 3.0
5 C X 4.0 2-0 8.0
8 C X 4.0 2-1 3.0
<小时/>

此外,您还可以使用set_indexstack:

data.set_index(['Name','Home','HW']).stack().reset_index()

输出:

  Name Home   HW variable  value
0 A Z 1.2 1-0 2.2
3 A Z 1.2 2-0 1.5
6 A Z 1.2 2-1 5.0
1 B Y 3.2 1-0 3.1
4 B Y 3.2 2-0 5.0
7 B Y 3.2 2-1 2.0
2 C X 4.0 1-0 3.0
5 C X 4.0 2-0 8.0
8 C X 4.0 2-1 3.0

关于python - 传输数据创建新的数据帧来重新构造数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53789707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com