我有一个数据如下。
我需要填写“值”列,其中没有每个月/名称的数据。
月份值是df ['month']的唯一值
import pandas as pd
a = [['2020-01',1,'a'], ['2020-02',2,'a']]
b = [['2020-01',1,'b'], ['2020-03',4,'b']]
a.extend(b)
df = pd.DataFrame(a, columns=['month','value','name'])
print(df)
以下是原始数据。
month value name
0 2020-01 1 a
1 2020-02 2 a
2 2020-01 1 b
3 2020-03 4 b
下面是填写零(0)时的预期结果。请注意,名称a和b都缺少月份。
month value name
0 2020-01 1 a
1 2020-02 2 a
2 2020-03 0 a
3 2020-01 1 b
4 2020-02 0 b
5 2020-03 4 b
最有效的方法是什么?
2条答案
按热度按时间1zmg4dgp1#
让我们执行
pivot
和stack
来填充名称中的所有唯一月份:tpgth1q72#
我已经做了下面这样的。但我认为这是没有效率的。
如果有人能展示更高效的代码,我将不胜感激。