如何获取datafram中给定值的行和列号

2024-04-20 04:07:27 发布

您现在位置:Python中文网/ 问答频道 /正文

Image of CSV

我在数据库中有一个blob(CSV)。我准备了一个字符串缓冲区并创建了一个panda数据帧。CSV文件没有某些列的列名,某些列名重复。在

{{cd2>需要获取}的值。即E5 = value_to_be_fetched。在

我只有文本值search_rowsearch_column。如何找到行索引为B5,列索引为E2?以及获取值E5 = value_to_be_fetched。在


Tags: ofcsvto数据字符串image数据库search
1条回答
网友
1楼 · 发布于 2024-04-20 04:07:27

如果值search_rowsearch_column在所有数据中都是唯一的,则使用np.where作为位置,并按^{}选择:

df = pd.DataFrame({'A':list('abcdef'),
                   'B':[4,5,4,5,500,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,300,5,7,1,0],
                   'E':[5,3,6,9,2,4],
                   'F':list('aaabbb')}, index = [1] * 6)
df.columns = ['A'] * 6
print (df)
   A    A  A    A  A  A
1  a    4  7    1  5  a
1  b    5  8  300  3  a
1  c    4  9    5  6  a
1  d    5  4    7  9  b
1  e  500  2    1  2  b
1  f    4  3    0  4  b

a = np.where(df == 500)[0]
b = np.where(df == 300)[1]
print (a)
[4]
print (b)
[3]

c = df.iloc[a[0],b[0]]
print (c)
1

但是如果应该复制值是可能的,那么只选择第一次出现的值,因为np.where返回带有{}的数组:

^{pr2}$
a = np.where(df == 2)[0]
b = np.where(df == 5)[1]
print (a)
[4 4]
print (b)
[4 1 3 1]

c = df.iloc[a[0],b[0]]
print (c)
2

相关问题 更多 >