Python 函数来迭代不同的值
你好,我有很多这种类型的数据帧要处理(有几个同名的列) 我想执行一个排序(方法),允许我输入与分配给它的值相同次数的“name”,以获得这种类型的datafame。有人有主意吗?提前感谢您的回答 我有:Python 函数来迭代不同的值,python,dataframe,Python,Dataframe,你好,我有很多这种类型的数据帧要处理(有几个同名的列) 我想执行一个排序(方法),允许我输入与分配给它的值相同次数的“name”,以获得这种类型的datafame。有人有主意吗?提前感谢您的回答 我有: name value value value 0 blabla1 blabla2 blabla3 1 1 10 100 2 2 20 200 3 3
name value value value
0 blabla1 blabla2 blabla3
1 1 10 100
2 2 20 200
3 3 30 300
我希望:
name value
0 blabla1 1
1 blabla1 2
2 blabla1 3
3 blabla2 10
4 blabla2 20
5 blabla2 30
6 blabla3 100
7 blabla3 200
8 blabla3 300
IIUC try:
输出:
name value
0 blabla1 1
1 blabla1 2
2 blabla1 3
3 blabla2 10
4 blabla2 20
5 blabla2 30
6 blabla3 100
7 blabla3 200
8 blabla3 300
亨利的解决方案很有效。这是你本可以采取的另一种方法。将来,试着看一些类似以下的备忘单:
卡迪姆,非常感谢你的回答!:)亨利,太完美了!非常感谢你的回答
name value
0 blabla1 1
1 blabla1 2
2 blabla1 3
3 blabla2 10
4 blabla2 20
5 blabla2 30
6 blabla3 100
7 blabla3 200
8 blabla3 300
import pandas as pd
import numpy as np
# Declare df to be the array of interest
df = pd.DataFrame(
[["blabla1", "blabla2", "blabla3"],
[1, 10, 100], [2, 20, 200],
[3, 30, 300]],
columns=['value', 'value', 'value']
).rename_axis('name')
# Go ahead and transpose it so we can use a 'melt' function easily
print(df.transpose())
# name 0 1 2 3
# value blabla1 1 2 3
# value blabla2 10 20 30
# value blabla3 100 200 300
################################
# Melt the values that are not in 0 column into a single 'value' column
print(df.transpose().melt(id_vars = 0))
# 0 name value
# 0 blabla1 1 1
# 1 blabla2 1 10
# 2 blabla3 1 100
# 3 blabla1 2 2
# 4 blabla2 2 20
# 5 blabla3 2 200
# 6 blabla1 3 3
# 7 blabla2 3 30
# 8 blabla3 3 300
################################
# Just some finish touches, like column renaming, sorting, etc.
print(
df.transpose()\
.melt(id_vars = 0)\
.drop(columns = ['name'])\
.rename({0: 'name'}, axis='columns')\
.sort_values(by = 'name')\
.reset_index(drop=True)
)
# name value
# 0 blabla1 1
# 1 blabla1 2
# 2 blabla1 3
# 3 blabla2 10
# 4 blabla2 20
# 5 blabla2 30
# 6 blabla3 100
# 7 blabla3 200
# 8 blabla3 300