aggfuncin的默认
pivot_table值为
np.sum,它不知道如何处理字符串,并且您还没有指出应该正确地使用什么索引。尝试类似的东西:
pivot_table = unified_df.pivot_table(index=['id', 'contact_id'], columns='question', values='response_answer', aggfunc=lambda x: ' '.join(x))
显式地每
id,contact_id对设置一行,并在上旋转一组
response_answer值
question。该
aggfunc只是保证,如果你有多个答案中的原始数据,我们只是将它们连接起来用空格一起同样的问题。的语法
pivot_table可能因您的熊猫版本而异。
这是一个简单的例子:
In [24]: import pandas as pdIn [25]: import randomIn [26]: df = pd.Dataframe({'id':[100*random.randint(10, 50) for _ in range(100)], 'question': [str(random.randint(0,3)) for _ in range(100)], 'response': [str(random.randint(100,120)) for _ in range(100)]})In [27]: df.head()Out[27]: id question response0 3100 1 1161 4500 2 1132 5000 1 1203 3900 2 1034 4300 0 117In [28]: df.info()<class 'pandas.core.frame.Dataframe'>Int64Index: 100 entries, 0 to 99Data columns (total 3 columns):id 100 non-null int64question 100 non-null objectresponse 100 non-null objectdtypes: int64(1), object(2)memory usage: 3.1+ KBIn [29]: df.pivot_table(index='id', columns='question', values='response', aggfunc=lambda x: ' '.join(x)).head()Out[29]:question 0 1 2 3id1000 110 120 NaN 100 NaN1100 NaN 106 108 104 NaN1200 104 113 119 NaN 1011300 102 NaN 116 108 1201400 NaN NaN 116 NaN


