2024-05-26 11:54:00 发布
网友
有一个数据集示例。
在这里,列的每个值都是一个整数列表。突出显示的行是对应列列表的总和。也就是说,列“day1”的突出显示行是“day1”列中所有列表的总和,依此类推。 我尝试过使用axis的sum(),但它似乎不适用于list。 获得总和列表后,必须将其分配到具有相同列数的新数据帧中。下图中的示例, 任何关于算法、链接和帮助的提示都将不胜感激。谢谢
希望您可以通过values.tolist()获得所有的和值,并将它们转换为int值,如下所示。尝试了一个示例,结果如图所示
import pandas as pd df = pd.read_csv("data.csv") dl = df.values.tolist() i = 0 for column in df: ilist = [sum([int(s) for s in l[i].split(',')]) for l in dl] i = i+1 print(column, " - ", sum(ilist))
-示例代码已尝试
您可以将数据帧转换为NumPy阵列,如下所示: df.to_numpy()
df.to_numpy()
在收到类似以下内容后:
a = np.random.randint(5, size=(4, 2, 5))
这里的每个块都是您的列:
array([[[2, 4, 1, 1, 1], [4, 0, 1, 4, 0]], [[1, 2, 4, 4, 3], [0, 1, 4, 4, 0]], [[0, 0, 0, 0, 2], [3, 0, 4, 2, 2]], [[2, 0, 3, 1, 0], [1, 1, 3, 3, 1]]])
然后用axis求和:
np.sum(a, axis=1)
收益率:
array([[6, 4, 2, 5, 1], [1, 3, 8, 8, 3], [3, 0, 4, 2, 4], [3, 1, 6, 4, 1]])
准备创建数据帧
dd = {f'Day{n}':np.array2string(i, separator=',') for n,i in enumerate(list(np.sum(ar, axis=1)), start=1)}
创建df:
df
df = pd.DataFrame(list(dd.values()), index=dd.keys()).T
Day1 Day2 Day3 Day4 0 [6,4,2,5,1] [1,3,8,8,3] [3,0,4,2,4] [3,1,6,4,1]
希望您可以通过values.tolist()获得所有的和值,并将它们转换为int值,如下所示。尝试了一个示例,结果如图所示
-示例代码已尝试
您可以将数据帧转换为NumPy阵列,如下所示:
df.to_numpy()
在收到类似以下内容后:
这里的每个块都是您的列:
然后用axis求和:
收益率:
准备创建数据帧
创建
df
:收益率:
相关问题 更多 >
编程相关推荐