当我在pandas中使用filter时,为什么会出现这个错误。类型错误:'int'对象不可迭代。

问题描述 投票:0回答:2

当我想删除一些满足特定条件的元素时,python出现了以下错误。

TypeError                                 Traceback (most recent call last)
<ipython-input-25-93addf38c9f9> in <module>()
  4 
  5 df = pd.read_csv('fb441e62df2d58994928907a91895ec62c2c42e6cd075c2700843b89.csv;
----> 6 df = filter(df,~('-02-29' in df['Date']))
  7 '''tmax = []; tmin = []
  8 for dates in df['Date']:

TypeError: 'int' object is not iterable

以下是代码。

import pandas as pd
import matplotlib.pyplot as plt


df = pd.read_csv('data/C2A2_data/BinnedCsvs_d400/fb441e62df2d58994928907a91895ec62c2c42e6cd075c2700843b89.csv');
df = filter(df,~('-02-29' in df['Date']))

我到底做错了什么?

以下是示例数据

样本数据

python pandas
2个回答
0
投票

使用df.filter() (https:/pandas.pydata.orgpandas-docsstablereferenceapipandas.DataFrame.filter.html。)同时请附上csv,以便我们在本地运行。


0
投票

另一种方法是使用pandas的字符串方法进行布尔索引。

df = df[~ df['Date'].str.contains('-02-29')]

你还是要先确定所有的日期都是字符串。

编辑。看到你的数据图片,也许这就是你想要的(用斜线代替连字符)。

df = df[~ df['Date'].str.contains('/02/29')]
© www.soinside.com 2019 - 2024. All rights reserved.