小编ard*_*dms的帖子

pandas:read_csv仅排除某些行

我正在尝试导入一个如下所示的 csv 文件

     Irrelevant row
"TIMESTAMP","RECORD","Site","Logger","Avg_70mSE_Avg","Avg_60mS_Avg",
"TS","RN","","","metres/second","metres/second",
"","","Smp","Smp","Avg","Avg",
"2010-05-18 12:30:00",0,"Sisters",5068,5.162,4.996
"2010-05-18 12:40:00",1,"Sisters",5068,5.683,5.571
Run Code Online (Sandbox Code Playgroud)

第二行是标题,但第 0、2、3 行不相关。我现在的代码是:

parse = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S')

df = pd.read_csv('data.csv', header=1, index_col=['TIMESTAMP'],
                 parse_dates=['TIMESTAMP'], date_parser = parse)
Run Code Online (Sandbox Code Playgroud)

问题是,由于第 2 行和第 3 行没有正确的日期,我收到一个错误(或者至少我认为这是错误)。

是否可以使用类似skiprows, 但对于不在文件开头的行来排除这些行?或者您还有其他建议吗?

python csv dataframe pandas

3
推荐指数
1
解决办法
7023
查看次数

python pandas .apply() 函数索引错误

我有以下数据帧:

                              P     N  ID  Year  Month
TS                                                    
2016-06-26 19:30:00  263.600006   5.4   5  2016      6
2016-06-26 20:00:00  404.700012   5.6   5  2016      6
2016-06-26 21:10:00  438.600006   6.0   5  2016      6
2016-06-26 21:20:00  218.600006   5.6   5  2016      6
2016-07-02 16:10:00  285.300049  15.1   5  2016      7
Run Code Online (Sandbox Code Playgroud)

我正在尝试根据列的值YearMonth类似以下内容添加一个新列

def exp_records(row):
    return calendar.monthrange(row['Year'], row['Month'])[1]
df['exp_counts'] = df.apply(exp_records, axis=1)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

类型错误:('预期整数参数,得到浮点','发生在索引 2016-06-26 19:30:00')

但是reset_index(),如果我是整数,那么上述.apply()工作正常。这是预期的行为吗?

我在 Python 3.4 中使用 Pandas 0.19.1


重新创建 DataFrame 的代码:

s = '''
TS,P,N,ID,Year,Month
2016-06-26 19:30:00,263.600006,5.4,5,2016,6 …
Run Code Online (Sandbox Code Playgroud)

python pandas

3
推荐指数
1
解决办法
6040
查看次数

标签 统计

pandas ×2

python ×2

csv ×1

dataframe ×1