我正在尝试从“数据”子组(service_id)中写入新列并获取“计数”值。
我的数据:
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:“标签[0]不在[索引]中”
但是任何其他解决方案都可以使用。谢谢!
答案 0 :(得分:0)
我试图这样获得所需的输出。
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.0