我有两个篮子
df1是以以下形式收集的数据:
Index 0 1 2 ...
0 (float,int) (float,int) (float,int) (float,int)
1 (float,int) (float,int) (float,int) (float,int)
... (float,int) (float,int) (float,int) (float,int)
字符串
df2是一个空的df构建,如下所示:
df2 = pd.DataFrame(index=df1.index, columns = np.arange(min, max, step).tolist())
Index float0 float1 float2 ...
0
1
...
型
我的问题是,我需要对df1中的每个条目,将列出的浮点数与df2中的列名进行比较,并将其对应的int数排序到df2中,并将其添加到任何预先存在的值中。
到目前为止,我得到了:
for j in range(len(df1)): # for every row
for i in range(len(df1.columns)): # for every column
# the following line is only pseudo code which I can't figure out how to phrase
y = df2 column to which df1[i][j][0] is closest in value
df2[y][j] = df2[y][j] + df1[i][j][1]
型
例如,如果:
df1 =
Index 0 1 2 ...
0 (.2,3) (.4,5) (.4,4) (.6,2)
1 (.5,2) (.8,8) (.8,5) (.2,9)
... (.4,3) (.2,7) (.3,4) (.7,1)
型
df2 =
Index .24 .47 .79 ...
0
1
...
型
df2(填充)=
Index .24 .47 .79 ...
0 3 5+4 2
1 9 2 8+5
...
型
1条答案
按热度按时间wrrgggsh1#
你可以尝试遍历df1中的每个单元格,解包元组以获得float和int值,在df2中找到最接近的列,然后相应地更新df2。下面是你如何做到这一点:
字符串
此脚本将修改df2,以便对于df1中的每个元组,它在df2中查找最近的列,并在df2中累积元组的整数部分。
**注意:**确保df2中的列名是浮点型的。如果不是,可能需要在find_closest_column函数中使用df2.columns.astype(float)进行转换。此外,此解决方案假设df1和df2在索引方面正确对齐。