gpt4 book ai didi

python - 记录 pandas 中条件条目的位置

转载 作者:太空狗 更新时间:2023-10-30 01:11:15 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

enter image description here

我想遍历每一行并打印非 NaN 条目的 [i,j] 位置。在这里,循环会理想地打印“G56”和“G51”。

到目前为止,我已经创建了一个将所有非 NaN 记录为 True 的 T/F 数据框:

df_na = df.notnull()

我可以获得任何 True 的行索引:

for index, row in df_na.iterrows():
if row.any() == True:
print(index)

但我无法获取列名。 (我也很关心这种方法,因为 iterrows() 比 itertuples() 慢。

最佳答案

设置

df = pd.DataFrame(np.nan, range(54, 62), [*'ABCDEFGHIJ'])
df.at[56, 'G'] = 3
df.at[61, 'G'] = 2

任何axis=1

df.index[df.notna().any(1)]

Int64Index([56, 61], dtype='int64')

打印

print(*df.index[df.notna().any(1)], sep='\n')

56
61

更普遍

numpy.where

i, j = np.where(df.notna())
print(*zip(df.index[i], df.columns[j]), sep='\n')

(56, 'G')
(61, 'G')

堆栈

默认情况下,stack 丢弃空值

print(*df.stack().index.values, sep='\n')

(56, 'G')
(61, 'G')

关于python - 记录 pandas 中条件条目的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52408770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com