Python 检查列的每个值是否包含整数,如果不包含整数,则打印该单元格的索引
假设我有一个整数和浮点混合的列,我需要在该列中运行一个循环来检查所有值是否都是数字。如果值不是数字,则将该单元格的索引转储到空白列表中 像这样的专栏:Python 检查列的每个值是否包含整数,如果不包含整数,则打印该单元格的索引,python,python-3.x,csv,pandas,Python,Python 3.x,Csv,Pandas,假设我有一个整数和浮点混合的列,我需要在该列中运行一个循环来检查所有值是否都是数字。如果值不是数字,则将该单元格的索引转储到空白列表中 像这样的专栏: DESCRIPTION RATE 79th St & Private Dr - 5022 W 1.5 79th St & Allison Ave 1.5 Allison Ave & 81st St 1 81s
DESCRIPTION RATE
79th St & Private Dr - 5022 W 1.5
79th St & Allison Ave 1.5
Allison Ave & 81st St 1
81st St & Norfolk St 1
Norfolk St & Private Dr - 8178 N 1
Norfolk St & 84th St 1
Moller Rd & 86th St 1.5
Zionsville Rd & 86th St 1.5
我写了这样的代码,但是newlist循环不起作用
import pandas as pd
import numpy as np
df = pd.read_csv("C:\\Python34\\python scripts\\BNSF\\data\\data.csv") #read csv
col=df.columns #read header
print(col)
r=df.shape[0] #gives number of row count
c=df.shape[1] #gives number of col count
print(r, c)
typ=df.dtypes
print(typ)
newlist=[] #creates blank list
for i in range(r,1):
if df.iloc[i,1].dtype == np.int64:
pass
else:
print(df.iloc[i,1])
newlist.append(df.iloc[i,1])
print(newlist)
需要在该循环中进行更改。请帮忙。熊猫的美丽之处在于你可以经常避免使用环。通过执行模1运算并检查零等价性
%1==0
在变量intcheck
中生成真/假值的数据帧,可以将数据排序为整数/非整数。然后只需从原始数据帧中获取True
行即可。将~
放在前面会反转布尔值以获得非整数值
import pandas as pd
d =[["79th St & Private Dr - 5022 W" ,1.5],
["79th St & Allison Ave" ,1.5],
["Allison Ave & 81st St" ,1 ],
["81st St & Norfolk St" ,1 ],
["Norfolk St & Private Dr - 8178 N" ,1 ],
["Norfolk St & 84th St" ,1 ],
["Moller Rd & 86th St" ,1.5],
["Zionsville Rd & 86th St" ,1.5]]
df = pd.DataFrame(d, columns=['DESCRIPTION','RATE'])
df = df.set_index('DESCRIPTION')
intcheck = (df.RATE%1)==0
print(df[intcheck])
# RATE
# DESCRIPTION
# Allison Ave & 81st St 1.0
# 81st St & Norfolk St 1.0
# Norfolk St & Private Dr - 8178 N 1.0
# Norfolk St & 84th St 1.0
print(df[~intcheck])
# RATE
# DESCRIPTION
# 79th St & Private Dr - 5022 W 1.5
# 79th St & Allison Ave 1.5
# Moller Rd & 86th St 1.5
# Zionsville Rd & 86th St 1.5
您希望在
newlist
、行、列或类似元组的东西中使用什么索引(行、列)
?请注意,现在添加的是数据帧的值,而不是索引。在任何情况下,数据类型都是按列确定的,所以您可能不需要遍历每个单元格……数据中的newlist是什么?newlist=[[row,column],[row,column]]