python - 如何使用按值分组创建新的 pandas DataFrame?

标签 python pandas pandas-groupby

我有 3 个位置的数据。我想按位置分组并创建新的 pandas DataFrame。

我有如下的 pandas DataFrame:

Day  Time  LocationA  LocationB
1    8     XX         YY
1    8     XX         ZZ
1    8     XX         ZZ    
1    9     YY         ZZ
1    9     XX         YY
1    9     ZZ         XX
1    9     ZZ         YY
2    8     XX         ZZ
2    8     XX         YY

我需要 pandas DataFrame 如下:

Day  Time  Location  A  B
1    8     XX        3  0
1    8     YY        0  1
1    8     ZZ        0  2
1    9     XX        1  1
1    9     YY        1  2
1    9     ZZ        2  1
2    8     XX        2  0
2    8     YY        0  1
2    8     ZZ        0  1

最佳答案

在你的情况下使用 melt 然后 groupby + stack

yourdf=df.melt(['Day','Time']).groupby(['Day','Time','variable']).value.value_counts().unstack(level=2,fill_value=0).reset_index()
yourdf
Out[405]: 
variable  Day  Time value  LocationA  LocationB
0           1     8    XX          3          0
1           1     8    YY          0          1
2           1     8    ZZ          0          2
3           1     9    XX          1          1
4           1     9    YY          1          2
5           1     9    ZZ          2          1
6           2     8    XX          2          0
7           2     8    YY          0          1
8           2     8    ZZ          0          1

关于python - 如何使用按值分组创建新的 pandas DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56502924/

相关文章:

python - groupby 并对两列求和并在 pandas 中设置为一列

python - 向 .csv 写入多于一列

Python web scraping - 如何在页面通过JS加载内容时获取资源?

python - df.drop_duplicates 删除了太多条目

python - 在 for 循环中访问过去的日期时间

Python - Pandas - DataFrame - 根据条件将单列分解为多个 boolean 列

python - 在Python中获取矩阵/列表列表中的所有对角线

python - 我如何在 python 中的文件的特定列中写入一些值/字符串

Pandas 分组表现

python - 比较不同数据帧的 groupby 输出