传输数据以创建新数据框以重新构建数据框
Transporting data to create a new data frame to re-structure the data frame
我有一个 csv 文件,其中包含沿行的数据。
我想通过将所有行传输到 columns.I 来创建数据框,提供了以下示例数据框,该数据框复制了 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”转换为新数据框的列,并将其对应的数据转换为新列 得分。
第一列 ** 名称 ** 将用作新列,但所有分数都是重复的。
以下是预期的输出。
在新数据框中,第一列 Name 中的元素将被复制。第二列中的元素 Score 是旧数据框中的一些列名称。
其余列如 HW 将被复制为与名称列相同。
请问如何改造?
非常感谢您的建议。
谢谢。
Zep.
尝试 melt
:
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_index
和 stack
:
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
我有一个 csv 文件,其中包含沿行的数据。 我想通过将所有行传输到 columns.I 来创建数据框,提供了以下示例数据框,该数据框复制了 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”转换为新数据框的列,并将其对应的数据转换为新列 得分。 第一列 ** 名称 ** 将用作新列,但所有分数都是重复的。
以下是预期的输出。
在新数据框中,第一列 Name 中的元素将被复制。第二列中的元素 Score 是旧数据框中的一些列名称。 其余列如 HW 将被复制为与名称列相同。
请问如何改造? 非常感谢您的建议。 谢谢。 Zep.
尝试 melt
:
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_index
和 stack
:
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