我有一個DataFrame df1并且我想獲得一個特定的日期,例如串列中的2022-01-04所有列名,df1這將是:01G, 02G, 04G。到目前為止,我只能獲得每行的數量,而不是列名。
這將是一個簡單的例子:
df1:
01G 02G 03G 04G
Dates
2022-01-01 0 1 0 1
2022-01-02 1 1 1 0
2022-01-03 0 1 1 1
2022-01-04 1 1 0 1
為了重現性:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({
'Dates':['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04'],
'01G':[0, 1, 0, 1],
'02G':[1, 1, 1, 1],
'03G':[0, 1, 1, 0],
'04G':[1, 0, 1, 1]})
df1 = df1.set_index('Dates')
np.count_nonzero(df1, axis=1)
非常感謝!
uj5u.com熱心網友回復:
使用DataFrame.loc由日期時間過濾器行,比較更大的像0和過濾列名:
print (df1.columns[df1.loc['2022-01-04'].gt(0)].tolist())
['01G', '02G', '04G']
uj5u.com熱心網友回復:
對于您的特殊情況,似乎我們也可以在將 dtype 更改為之后直接使用行值進行過濾bool:
out = df1.columns[df1.loc['2022-01-04'].astype(bool)].tolist()
輸出:
['01G', '02G', '04G']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408939.html
標籤:
