如何使用 pandas.DataFrame 列作为索引、列和值?
How do you use pandas.DataFrame columns as index, columns, and values?
我似乎不知道如何以可搜索的方式提出这个问题,但我觉得这是一个简单的问题。
给定一个 pandas Dataframe 对象,我想使用一列作为索引,一列作为列,第三列作为值。
例如:
a b c
0 1 dog 2
1 1 cat 1
2 1 rat 6
3 2 cat 2
4 3 dog 1
5 3 cat 4
我想用户列 'a' 作为我的索引值,列 'b' 作为我的列,列 'c' 作为每个 row/column 的值并填充缺失值为 0(如果可能)。例如...
dog cat rat
1 2 1 6
2 0 2 0
3 1 4 0
这将是一个 'a' 乘以 'b' 的矩阵,其中 'c' 作为填充值
http://pandas.pydata.org/pandas-docs/dev/reshaping.html
从您提供的示例数据框开始,
df.pivot(index='a', columns='b', values='c')
将产生几乎完全符合您要求的输出。
FWIW,df.melt() 是相反的转换。
它(几乎)完全如您所说:
df.pivot_table(index="a", columns="b", values="c", fill_value=0)
给予
b cat dog rat
a
1 1 2 6
2 2 0 0
3 4 1 0
HTH
我似乎不知道如何以可搜索的方式提出这个问题,但我觉得这是一个简单的问题。
给定一个 pandas Dataframe 对象,我想使用一列作为索引,一列作为列,第三列作为值。
例如:
a b c
0 1 dog 2
1 1 cat 1
2 1 rat 6
3 2 cat 2
4 3 dog 1
5 3 cat 4
我想用户列 'a' 作为我的索引值,列 'b' 作为我的列,列 'c' 作为每个 row/column 的值并填充缺失值为 0(如果可能)。例如...
dog cat rat
1 2 1 6
2 0 2 0
3 1 4 0
这将是一个 'a' 乘以 'b' 的矩阵,其中 'c' 作为填充值
http://pandas.pydata.org/pandas-docs/dev/reshaping.html
从您提供的示例数据框开始,
df.pivot(index='a', columns='b', values='c')
将产生几乎完全符合您要求的输出。
FWIW,df.melt() 是相反的转换。
它(几乎)完全如您所说:
df.pivot_table(index="a", columns="b", values="c", fill_value=0)
给予
b cat dog rat
a
1 1 2 6
2 2 0 0
3 4 1 0
HTH