我正在尝试从'data‘的子组(Service_id)中编写新的列,并获得'count’值。
我的数据:
count | service_id | date
2 ------------ 8 ------- 15-11
5 ------------ 2 ------- 15-11
4 ------------ 5 ------- 15-11
3 ------------ 3 ------- 16-11
2 ------------ 8 ------- 16-11
1 ------------ 2 ------- 17-11 期望产出:
--date--|---2---|---3---|---5---|---8- ##new headers are the subgroups 'service_id'
-15-11----5---------------4-------2
-16-11-------------3---------------2
-17-11----1------------------------- 对不起,我不知道这里怎么写桌子。
我试过:
然后是几个for循环和if的。
for num, row in df7.iterrows():
for elem in b:
if row['date'] == elem:
aux1 = str(elem)
df9.loc[num].data = aux1
for memb in a:
if row['service_id'] == memb:
aux = str(memb)
df9.loc[num].aux = row['count']我在这段代码中发现了一些错误,我想我还不知道如何使用loc函数。
这是输出错误:
KeyError:“标签不在索引中”
但任何其他解决方案都是受欢迎的。谢谢!
发布于 2019-07-02 04:20:30
我试着像这样得到想要的输出。
grouped = df.groupby('service_id')
new_df = pd.DataFrame()
for g, n in grouped:
g_i = grouped.get_group(g)
date_ = g_i.date
for i, e in enumerate(date_):
new_df.loc[e, 'date'] = e
new_df.loc[e, g] = list(g_i.count1)[i]
new_df = new_df.reset_index(drop=True)
print (new_df)
date 2 3 5 8
0 15-11 5.0 NaN 4.0 2.0
1 17-11 1.0 NaN NaN NaN
2 16-11 NaN 3.0 NaN 2.0https://stackoverflow.com/questions/56844931
复制相似问题