Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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_Pandas - Fatal编程技术网

Python 如何更改数据帧';熊猫中的行到列?

Python 如何更改数据帧';熊猫中的行到列?,python,pandas,Python,Pandas,现在,我有一个数据帧df: >>> df = pd.DataFrame({'name':['a','a','b'], 'value1':[100,200,300], 'value2':[1,2,3]}) >>> df name value1 value2 0 a 100 1 1 a 200 2 2 b 300 3 现在,我想将df更改为以下形式: name

现在,我有一个数据帧
df

>>> df = pd.DataFrame({'name':['a','a','b'], 'value1':[100,200,300], 'value2':[1,2,3]})
>>> df
  name  value1  value2
0    a     100       1
1    a     200       2
2    b     300       3
现在,我想将
df
更改为以下形式:

        name  value1  value2 name  value1  value2
          a     100       1    a     200       2
          b     300       3
那么,如何有效地转换
df

使用+:

对于唯一的列名称,请使用
join

df1.columns = df1.columns.map('_'.join)
print (df1)
  name_0  value1_0  value2_0 name_1  value1_1  value2_1
0      a     100.0       1.0      a     200.0       2.0
1      b     300.0       3.0   None       NaN       NaN
如果需要重复的列名称,请使用:

编辑:


使用
apply
的替代方法是有问题的,因为所有
dtype
都被更改为
object

您请求的数据结构对于进一步处理(尤其是重复的标题)来说效率不高。你为什么要用那种格式?如果有几十个相同的名称,那么可能会有数百列。也许有更好的解决方案可以让你得到最终的结果。Thx,因为我正试图将数据处理成下游需要的形式,我也认为这种结构组织得不好,但我没有其他选择。
df1.columns = df1.columns.map('_'.join)
print (df1)
  name_0  value1_0  value2_0 name_1  value1_1  value2_1
0      a     100.0       1.0      a     200.0       2.0
1      b     300.0       3.0   None       NaN       NaN
df1.columns = df1.columns.droplevel(1)
print (df1)
  name  value1  value2  name  value1  value2
0    a   100.0     1.0     a   200.0     2.0
1    b   300.0     3.0  None     NaN     NaN