【发布时间】:2023-01-11 09:52:32
【问题描述】:
如果第 2 列的值不为空,则想要打印第 1 列的值。输出应该是 [1,3]。
这是我创建的脚本,但它不起作用:
import xlrd
import pandas as pd
filename='test.xlsx'
dataframe = pd.read_excel(filename)
frame = dataframe.loc[dataframe["col2"] !=" "]
df = frame.iloc[:, 0]
ndarray = df.to_numpy()
print(ndarray)
【问题讨论】:
-
为什么你认为它不起作用?
-
您尝试过滤空格:
" "这可能是问题所在。在空的“单元格”中,pandas 使用 numpy.nan,因此更容易使用 pandas 内置功能来过滤这些行,例如 .notna() -
结果是 [1,2,3,4] 但预期输出是 [1,3]
-
@Andreas,你是对的。它在将其更改为:frame = dataframe.loc[dataframe["col2"].notna()] 后起作用