基本上,我需要从 csv 文件中删除“县”列的值不包含“县”一词的某些行。我试图将其推回到我的数据框中,但是我收到了索引错误。
chd = pd.read_csv('some_file.csv')
for index, row in chd.iterrows():
if 'County' not in row['County']:
chd = chd.drop(chd.index[[index,3]])
我收到以下错误:
索引错误:索引 2959 超出尺寸为 2909 的轴 1 的范围
给出以下两行。我想去掉第一行。
STATECODE COUNTYCODE State County Some_Column
1 0 AL Alabama 9,508
1 0 AL Alabama County 9,508
此后我尝试了以下操作,但似乎没有删除任何行。如果我打印数据框,它保持不变。
chd = pd.read_csv('some_file.csv')
chd[chd['County'].str.contains('county', case=False)]
最佳答案
IIUC 那么您可以执行 chd[chd['Count'].str.contains('county', case=False)]
删除不包含您的值的行
您收到错误的原因是因为您正在迭代 df 并删除行,因此您的索引值会发生变化且无效
示例:
In [123]:
df = pd.DataFrame({'County':['Alaska', 'Big county', 'Country', 'No county', 'County']})
df[df['County'].str.contains('county', case=False)]
Out[123]:
County
1 Big county
3 No county
4 County
关于python - 如何迭代 csv 文件的行并根据特定列的值删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35428032/