我有一个包含以下信息的多级数据帧:
A B 123 1 value1 value2
654 2 value3 value4
C D 543 2 value1 value2
999 2 value5 value7
例如,我想使用索引值A和B(或C和D)仅选择一个值123或654或543等(索引的一部分)。 值A、B、C、D是有限的,因此可以根据循环中的列表轻松搜索。 但值123、654或543的范围是从0到20000,所以使用for循环来获取它会使事情变得非常缓慢
多谢各位。 提供更多详细信息: 我正在尝试使用循环访问数据帧df(由您在应答中创建)。 df是一个大数据帧
在这里输入代码
# Dataframe df1 have 2 columns with with subset of values in level0 and #level1 of df1.
for index1 in range(len(df1)):
for index2 in range(len(df1)):
# x, y will fetch particular value of level0 & level1 respectively
x = df1.loc[(index1),'level0column']
y = df1.loc[(index2),'level1column']
# Trying to get values for level2 values
for level2ids in range(20000):
for level3ids in range(2):
total1 = df.loc[(x,y, level2ids,level3ids), 'value_x']
......
要替换下面的代码行
# Trying to get values for level2 values
for level2ids in range(20000):
因为df是一个大数据帧,我在运行时获取level0和level1的值,所以我想在运行时也获取level2的值。对于level0和level1的特定值,获取level2的值只能得到一个值非常少的列表。 不知道这是否可能,也不知道我是否要澄清我的问题
如果您的数据帧如下所示:
返回:
您应该能够使用label-based indexing的机制:
返回:
相关问题 更多 >
编程相关推荐