我有3列数据。我将数据存储在csv中的三列(k,v,t)中。例如,
数据:
k v t
a 1 2
b 2 3
c 3 4
a 2 3
b 3 2
b 3 4
c 3 5
b 2 3
我想获得以下数据。基本上,将具有相同k和v的所有t的值相加。
a 1 5
b 2 6
b 3 6
c 3 9
这是我到目前为止的代码:
aList = []
aList2 = []
aList3 = []
for i in range(len(data)):
if data['k'][i] == 'a':
if data['v'][i] == 1:
aList.append(data['t'][i])
elif data['v'][i] == 2:
aList2.append(data['t'][i])
else:
aList3.append(data['t'][i])
它一直持续到最后。
我使用“for loop”和“if”但它太长了。我可以用简短而干净的方式使用numpy吗?或任何其他更好的方式?
答案 0 :(得分:1)
以下是使用url('^patient_summary/patientid=(?P<patient_id>\d+)&clinicid=(?P<clinic_id>\d+)/$', views.patient_summary, name='patient_summary'),
url('^patient_summary/patientid=(?P<patient_id>\d+)&clinicid=(?P<clinic_id>\d+)/careplanid=(?P<careplan_id>\d+)/$', views.care_plan, name='care_plan'),
的一种解决方案。
首先创建一个数据帧,然后执行pandas
操作。以下代码假定您的数据存储在csv文件中。
groupby
<强>结果强>
df = pd.read_csv('file.csv')
g = df.groupby(['k', 'v'], as_index=False)['t'].sum()