Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数来迭代不同的值_Python_Dataframe - Fatal编程技术网

Python 函数来迭代不同的值

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”,以获得这种类型的datafame。有人有主意吗?提前感谢您的回答

我有:

    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