问题描述
我刚刚开始学习python,并陷入了这个问题:
我有此列表:
--add-data "file1.xlsx"
我需要对每一行数字求和,例如:
data = [
['Grinning',2.26,1.02,87.3],['Beaming',19.1,1.69,150.0],['ROFL',25.6,0.774,0.0],['Tears of Joy',233.0,7.31,2270.0],['Winking',15.2,2.36,264.0],['Happy',22.7,4.26,565.0],['Heart Eyes',64.6,11.2,834.0],['Kissing',87.5,5.13,432.0],['Thinking',6.81,0.636,['Unamused',6.0,0.236,478.0],['Sunglasses',4.72,3.93,198.0],['Loudly Crying',24.7,1.35,654.0],['Kiss Mark',21.7,2.87,98.7],['Two Hearts',10.0,5.69,445.0],['Heart',118.0,26.0,1080.0],['Heart Suit',3.31,1.82,697.0],['Thumbs Up',23.1,3.75,227.0],['Shrugging',1.74,0.11,['Fire',4.5,2.49,['Recycle',0.0333,0.056,932.0]
]
我尝试了很多方法来仅获取行号,但是没有找到一种可以正常工作并且不会汇总所有列的方法
我也尝试过这个:
"Grinning" sum = 2.26 + 1.02 + 87.3
但是它会打印一个我什至不认识的数字...
如果有人能解释如何对每一行编号求和,我将不胜感激
解决方法
选项1:没有要求的sum
d = {}
for current_sub_list in data:
current_list_sum = 0
for j in range(1,len(current_sub_list)):
current_list_sum += current_sub_list[j]
d[current_sub_list[0]] = current_list_sum
print(d)
选项2:
d = {}
for x in data:
d[x[0]] = sum(x[1:])
print(d)
,
使用此
media.AddOption(":no-sout-file-overwrite");
media.AddOption(":sout-file-append");
,
vals = [1,2]
dates = df1["DateTime"].dt.date
mask = df1['Member Code'].eq(dates.map(df1['Member Code'].groupby(dates).nth(vals[0])))
mask1 = df1['Member Code'].groupby(dates).cumcount().ne(vals[0])
df = df1.mask(mask & mask1).groupby(dates).bfill()
print (df)
DateTime Duration Member Code
0 2018-09-01 00:01:00 3.0 13595.0
1 2018-09-01 00:35:00 14.0 17630.0
2 2018-09-01 01:14:00 9.0 13522.0
3 2018-09-01 01:46:00 7.5 14942.0
4 2018-09-01 01:46:00 7.5 14942.0
5 2018-09-02 00:13:00 1.0 17022.0
6 2018-09-02 00:51:00 2.0 13596.0
7 2018-09-02 02:16:00 10.0 14942.0
8 2018-09-02 02:16:00 10.0 14942.0
9 2018-09-02 02:16:00 10.0 14942.0
df_new = df.groupby(df1["DateTime"].dt.date).nth(vals)
print (df_new)
DateTime Duration Member Code
DateTime
2018-09-01 2018-09-01 00:35:00 14.0 17630.0
2018-09-01 2018-09-01 01:14:00 9.0 13522.0
2018-09-02 2018-09-02 00:51:00 2.0 13596.0
2018-09-02 2018-09-02 02:16:00 10.0 14942.0
这里x是x=[]
for i in range(len(data)):
x.append([data[i][0],sum(data[i][1:])])
print(x)
中的list