Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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,我有一个表格,其中两种不同类型的列被堆叠到字段列-属性和问题中 +-------+------------+-------+ | id | field | value | +-------+------------+-------+ | 52394 | gender | M | | 52394 | age | 24 | | 52394 | question_1 | 2 | | 52394 | question_2 | 1 | +

我有一个表格,其中两种不同类型的列被堆叠到
字段
列-属性和问题中

+-------+------------+-------+
|  id   |   field    | value |
+-------+------------+-------+
| 52394 | gender     | M     |
| 52394 | age        | 24    |
| 52394 | question_1 | 2     |
| 52394 | question_2 | 1     |
+-------+------------+-------+
我想重塑它,使性别和年龄成为列,而问题1和问题2保持堆叠

+-------+--------+-----+------------+-------+
|  id   | gender | age |   field    | value |
+-------+--------+-----+------------+-------+
| 52394 | M      |  24 | question_1 |     2 |
| 52394 | M      |  24 | question_2 |     1 |
+-------+--------+-----+------------+-------+

有什么办法吗?

这是我的策略:

将透视应用于df,其中字段为性别或年龄,另存为df1。选择df,其中字段不是性别或年龄,另存为df2。然后在id上合并这两个(df1和df2)。以下是我的完整代码:

import pandas as pd
import sys
if sys.version_info[0] < 3:
    from StringIO import StringIO
else:
    from io import StringIO

# Create df
rawText = StringIO("""
  id     field     value 
 52394  gender      M     
 52394  age         24    
 52394  question_1  2     
 52394  question_2  1     
""")
df = pd.read_csv(rawText, sep = "\s+")
df1 = df[df['field'].isin(['gender','age'])]
df1 = df1.pivot(index = 'id', columns = 'field', values = 'value').reset_index()
df2 = df[~df['field'].isin(['gender','age'])]
df1.merge(df2)

非常欢迎@dsal1951!我很高兴能帮上忙!
      id age gender       field value
0  52394  24      M  question_1     2
1  52394  24      M  question_2     1