当我想删除一些满足特定条件的元素时,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']))
我到底做错了什么?
以下是示例数据
使用df.filter() (https:/pandas.pydata.orgpandas-docsstablereferenceapipandas.DataFrame.filter.html。)同时请附上csv,以便我们在本地运行。
另一种方法是使用pandas的字符串方法进行布尔索引。
df = df[~ df['Date'].str.contains('-02-29')]
你还是要先确定所有的日期都是字符串。
编辑。看到你的数据图片,也许这就是你想要的(用斜线代替连字符)。
df = df[~ df['Date'].str.contains('/02/29')]