如果 pandas 为 NaN,我如何检查单元格?
How do i check a cell if NaN with pandas?
我是 Pandas 的初学者。
我想操纵一个 Excel 文件并计算尺寸 (D) = 160mm 的构造对象 (R-R) 的米数。
如何从 for-slice 行中的单元格中获取列 'IsoOf' 中的值?
df.loc[filt, 'IsoOf'].isnull().values.any() == True
例子
行 'R-R' '160' = 索引 10,12,15,65,70....
df.loc[filt, 'IsoOf'].isnull().values.any() == True
每次第 0 行检查它没有 link 到 for Slice
我在哪里可以设置 "row" (i) 元素来检查正确的索引?
喜欢df.loc[filt, 'IsoOf'].isnull(row).values.any() == True
import pandas as pd
#Open file
df = pd.read_excel('Bauteilliste.xlsx')
#edit the display option on jupyter
pd.set_option('display.max_columns', 75)
#Filter
# 1. All Elements with the ID R-R and the dimension 160mm
filt = (df['KZ'] == 'R-R') & (df['D'] == 160)
#Calculate all the Elements
counter_lenght = 0 #Without Isaltion
counter_lenght_isolation = 0 #With Isaltion
#Get throut every row with the filt filter
for row in df.loc[filt, 'L']:
#PROBLEM: What todo taht .isnull get the same id from row??
#It only checks the value .isnull from the index 0 not from the filtered row
if df.loc[filt, 'IsoOf'].isnull().values.any() == True:
counter_lenght = counter_lenght + row
else:
counter_lenght_isolation = counter_lenght_isolation + row
print(counter_lenght)
print(counter_lenght_isolation)
Screenshot from Jupyter Notebook
尝试这样的事情:
import pandas as pd
#Open file
df = pd.read_excel('Bauteilliste.xlsx')
#edit the display option on jupyter
pd.set_option('display.max_columns', 75)
#Filter
# 1. All Elements with the ID R-R and the dimension 160mm
filt = (df['KZ'] == 'R-R') & (df['D'] == 160)
#Calculate all the Elements
counter_lenght = 0 #Without Isaltion
counter_lenght_isolation = 0 #With Isaltion
#Get throut every row with the filt filter
for row in df.loc[filt, 'L'].iterrows():
#PROBLEM: What todo taht .isnull get the same id from row??
#It only checks the value .isnull from the index 0 not from the filtered row
if not row[1]['IsoOf']:
counter_lenght = counter_lenght + row
else:
counter_lenght_isolation = counter_lenght_isolation + row
print(counter_lenght)
print(counter_lenght_isolation)
我找到了解决问题的方法。我将使用两个不同的过滤器过滤行。
import pandas as pd
df = pd.read_excel('Bauteilliste.xlsx')
pd.set_option('display.max_columns', 75)
# Filter settings
filt_with_isolation = (df['KZ'] == 'R-R') & (df['D'] == 160) & (df['IsoOf'].isna() == False)
filt_without_isolation = (df['KZ'] == 'R-R') & (df['D'] == 160) & (df['IsoOf'].isna() == True)
# counting the meters
counter_with_isolation = 0
counter_without_isolation = 0
# for-Slice, get Elements with isolation
for row in df.loc[filt_with_isolation, 'L']:
counter_with_isolation = counter_with_isolation + row
for row in df.loc[filt_without_isolation, 'L']:
counter_without_isolation = counter_without_isolation + row
print(counter_with_isolation)
print(counter_without_isolation)
Output:
6030.0
41050.0
我是 Pandas 的初学者。 我想操纵一个 Excel 文件并计算尺寸 (D) = 160mm 的构造对象 (R-R) 的米数。
如何从 for-slice 行中的单元格中获取列 'IsoOf' 中的值?
df.loc[filt, 'IsoOf'].isnull().values.any() == True
例子
行 'R-R' '160' = 索引 10,12,15,65,70....
df.loc[filt, 'IsoOf'].isnull().values.any() == True
每次第 0 行检查它没有 link 到 for Slice
我在哪里可以设置 "row" (i) 元素来检查正确的索引?
喜欢df.loc[filt, 'IsoOf'].isnull(row).values.any() == True
import pandas as pd
#Open file
df = pd.read_excel('Bauteilliste.xlsx')
#edit the display option on jupyter
pd.set_option('display.max_columns', 75)
#Filter
# 1. All Elements with the ID R-R and the dimension 160mm
filt = (df['KZ'] == 'R-R') & (df['D'] == 160)
#Calculate all the Elements
counter_lenght = 0 #Without Isaltion
counter_lenght_isolation = 0 #With Isaltion
#Get throut every row with the filt filter
for row in df.loc[filt, 'L']:
#PROBLEM: What todo taht .isnull get the same id from row??
#It only checks the value .isnull from the index 0 not from the filtered row
if df.loc[filt, 'IsoOf'].isnull().values.any() == True:
counter_lenght = counter_lenght + row
else:
counter_lenght_isolation = counter_lenght_isolation + row
print(counter_lenght)
print(counter_lenght_isolation)
Screenshot from Jupyter Notebook
尝试这样的事情:
import pandas as pd
#Open file
df = pd.read_excel('Bauteilliste.xlsx')
#edit the display option on jupyter
pd.set_option('display.max_columns', 75)
#Filter
# 1. All Elements with the ID R-R and the dimension 160mm
filt = (df['KZ'] == 'R-R') & (df['D'] == 160)
#Calculate all the Elements
counter_lenght = 0 #Without Isaltion
counter_lenght_isolation = 0 #With Isaltion
#Get throut every row with the filt filter
for row in df.loc[filt, 'L'].iterrows():
#PROBLEM: What todo taht .isnull get the same id from row??
#It only checks the value .isnull from the index 0 not from the filtered row
if not row[1]['IsoOf']:
counter_lenght = counter_lenght + row
else:
counter_lenght_isolation = counter_lenght_isolation + row
print(counter_lenght)
print(counter_lenght_isolation)
我找到了解决问题的方法。我将使用两个不同的过滤器过滤行。
import pandas as pd
df = pd.read_excel('Bauteilliste.xlsx')
pd.set_option('display.max_columns', 75)
# Filter settings
filt_with_isolation = (df['KZ'] == 'R-R') & (df['D'] == 160) & (df['IsoOf'].isna() == False)
filt_without_isolation = (df['KZ'] == 'R-R') & (df['D'] == 160) & (df['IsoOf'].isna() == True)
# counting the meters
counter_with_isolation = 0
counter_without_isolation = 0
# for-Slice, get Elements with isolation
for row in df.loc[filt_with_isolation, 'L']:
counter_with_isolation = counter_with_isolation + row
for row in df.loc[filt_without_isolation, 'L']:
counter_without_isolation = counter_without_isolation + row
print(counter_with_isolation)
print(counter_without_isolation)
Output:
6030.0
41050.0