我逐个扩展了我的数据文件,但现在我需要从我的data_lv1_%Y%m%d.csv
文件中交换两行,其中包含来自spektrum_%Y%m%d.csv
文件的两列。
所以我的文件夹包含data_lv1_%Y%m%d.csv
和spektrum_%Y%m%d.csv
,我需要找到匹配的'data_lvl1 ....'和'spektrum .....'文件获取'第2列和来自spektrum
文件的3'并将其粘贴到columns and 42 and 43
文件的data_lv1_%Y%m%d.csv
中...
文件中每一行的时间戳都是相同的%Y-%m-%d %H:%M
所以data_lv1_%Y%m%d.csv
看起来像这样:
2014-11-05 08:00 0.19 0.16 0.00 0.16 9 14.0 14.1 14.0 69 8.4 0.0 SSE 0.00 0.4 SSE 14.0 13.6 13.6 14.7 1002.7 0.00 0.0 111 0.16 111 0.0 0.00 0.0 0.003 0.000 25.5 42 11.6 25.1 0.03 17 1 73.9 1 1.264390582977165 982.2914032430997
2014-11-05 08:01 0.19 0.15 0.00 0.15 9 14.1 14.1 14.1 69 8.5 0.4 SSE 0.03 1.8 SSE 14.1 13.6 13.6 14.9 1002.7 0.00 0.0 116 0.17 116 0.0 0.00 0.0 0.003 0.000 25.5 42 11.6 25.1 0.00 9 1 39.1 1 1.2642303482739734 982.4159036331284 47 40 62 65
2014-11-05 08:02 0.18 0.15 0.00 0.15 9 14.1 14.1 14.1 69 8.5 0.0 SSW 0.00 0.4 SSW 14.1 13.7 13.7 15.0 1002.9 0.00 0.0 118 0.17 118 0.0 0.00 0.0 0.003 0.000 25.6 42 11.7 25.2 0.00 16 1 69.6 1 1.2643326687934051 982.3363982086155
2014-11-05 08:03 0.18 0.14 0.00 0.14 9 14.1 14.2 14.1 69 8.5 0.0 SSW 0.00 0.9 SSW 14.1 13.7 13.7 15.1 1002.7 0.00 0.0 121 0.17 121 0.0 0.00 0.0 0.003 0.000 25.6 42 11.7 25.2 0.00 11 1 47.8 1 1.264371779179926 982.3060119275706
2014-11-05 08:04 0.18 0.14 0.00 0.14 9 14.2 14.2 14.2 69 8.6 0.4 S 0.03 1.3 S 14.2 13.7 13.7 15.1 1002.7 0.00 0.0 121 0.17 121 0.0 0.00 0.0 0.003 0.000 25.7 42 11.8 25.3 0.00 9 1 39.1 1 1.2642078834510273 982.4333610462828
2014-11-05 08:05 0.16 0.13 0.00 0.13 9 14.2 14.2 14.2 69 8.6 0.4 S 0.03 2.2 S 14.2 13.8 13.8 15.3 1002.8 0.00 0.0 125 0.18 125 0.0 0.00 0.0 0.003 0.000 25.7 42 11.8 25.3 0.00 18 1 78.3 1 1.2641495894315147 982.4786642208419
2014-11-05 08:06 0.16 0.13 0.00 0.13 9 14.3 14.3 14.2 69 8.7 3.1 S 0.19 6.3 SSW 13.6 13.8 13.1 14.7 1002.8 0.00 0.0 128 0.18 128 0.0 0.00 0.0 0.003 0.000 25.8 42 11.9 25.4 0.00 11 1 47.8 1 1.2641310901311893 982.4930418182402
2014-11-05 08:07 0.16 0.13 0.00 0.13 9 14.3 14.3 14.3 69 8.7 0.4 SSE 0.03 1.3 S 14.3 13.8 13.8 15.4 1002.7 0.00 0.0 128 0.18 128 0.0 0.00 0.0 0.003 0.000 25.8 42 11.9 25.4 0.00 9 1 39.1 1 1.2640878249125196 982.5266690516158
2014-11-05 08:08 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 69 8.7 0.0 SSW 0.00 0.4 SSW 14.3 13.9 13.9 15.5 1002.8 0.00 0.0 128 0.18 128 0.0 0.00 0.0 0.003 0.000 25.9 42 12.0 25.6 0.00 10 1 43.5 1 1.2640420201364455 982.5622726259796
2014-11-05 08:09 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 69 8.7 0.9 S 0.05 2.7 S 14.3 13.9 13.9 15.6 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 25.9 42 12.0 25.6 0.00 13 1 56.5 1 1.2640722442946564 982.5387794136938
2014-11-05 08:10 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 68 8.5 0.4 S 0.03 1.8 S 14.3 13.8 13.8 15.6 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.0 42 12.1 25.7 0.00 14 1 60.9 1 1.263973775777945 982.6153230398941
2014-11-05 08:11 0.16 0.12 0.00 0.12 9 14.3 14.4 14.3 68 8.5 0.4 SSE 0.03 1.8 S 14.3 13.8 13.8 15.6 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.1 41 11.8 25.7 0.00 12 1 52.2 1 1.2639454425247079 982.6373498520063
2014-11-05 08:12 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 68 8.5 0.4 SSE 0.03 0.9 SSE 14.3 13.8 13.8 15.6 1002.9 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.2 41 11.9 25.8 0.00 10 1 43.5 1 1.2639898014116238 982.6028648434778
2014-11-05 08:13 0.15 0.12 0.00 0.12 9 14.4 14.4 14.4 68 8.6 0.4 S 0.03 1.8 S 14.4 13.9 13.9 15.7 1002.8 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.3 41 12.0 25.8 0.00 10 1 43.5 1 1.263874621956528 982.6924114334497
2014-11-05 08:14 0.15 0.12 0.00 0.12 9 14.4 14.4 14.4 68 8.6 0.0 SSE 0.00 0.4 S 14.4 13.9 13.9 15.7 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.5 41 12.2 26.1 0.00 14 1 60.9 1 1.2638742617490812 982.6926915033389
2014-11-05 08:15 0.15 0.11 0.00 0.11 9 14.4 14.4 14.4 68 8.6 0.4 S 0.03 1.3 S 14.4 13.9 13.9 15.9 1002.7 0.00 0.0 156 0.22 156 0.0 0.00 0.0 0.003 0.000 26.7 41 12.4 26.2 0.00 23 1 100.0 1 1.2638991682523613 982.6733264785339
2014-11-05 08:16 0.15 0.11 0.00 0.11 9 14.4 14.4 14.4 68 8.6 0.0 S 0.00 1.8 S 14.4 13.9 13.9 16.0 1002.8 0.00 0.0 158 0.23 158 0.0 0.00 0.0 0.003 0.000 26.9 41 12.6 26.4 0.00 23 1 100.0 1 1.2639438134514795 982.6386163546646 60 49 88 82
2014-11-05 08:17 0.15 0.12 0.00 0.12 9 14.4 14.5 14.4 68 8.6 0.4 S 0.03 1.8 S 14.4 13.9 13.9 16.1 1002.6 0.00 0.0 160 0.23 160 0.0 0.00 0.0 0.003 0.000 27.1 41 12.7 26.6 0.00 24 1 100.0 1 1.2637607975085479 982.780920605032
spektrum_%Y%m%d.csv
文件如下所示:
2014-11-05 06:54 1.2821175173539188 968.709953018414
2014-11-05 06:55 1.2816088505861456 969.0944311378387
2014-11-05 06:56 1.2812624875214302 969.3564059637908
2014-11-05 06:57 1.2810378335850467 969.5264007341631
2014-11-05 06:58 1.280514458802534 969.9226677701473
2014-11-05 06:59 1.2804410978592646 969.9782380278693
2014-11-05 07:00 1.2799436634193884 970.3552081987569
2014-11-05 07:01 1.2793760789237318 970.7856981700221
2014-11-05 07:02 1.2788601016214594 971.1773777485712
2014-11-05 07:03 1.2787234324253685 971.2811766061762
2014-11-05 07:04 1.2786275370664746 971.3540213982033
2014-11-05 07:05 1.2786632282014252 971.3269081390605
如果我可以使用data_lvl1....
文件中的列覆盖spektrum_ ....
文件中的列,那会很棒但我不介意来自spektrum_%Y%m%d.csv
的数据是否仅附加在spektrum file
文件中文件的结尾,只要它们不干扰'data ...'文件的行的最后一行,每隔15分钟就有一个值....
我很感激如何开始使用以及使用哪些模块?熊猫在这里是一个选择....
最简单和最快捷的方法是简单地附加data_lvl1...
末尾data_lvl1_TIMESTAMP
的文件
感谢您的任何建议
编辑:抱歉不清楚问题...合并标准是每个spektrum_TIMESTAMP
文件的文件夹中都有一个%Y%m%d
文件。时间戳是spektrum
。这两个文件每分钟都有行,我想合并数据行。
data_lvl1
文件包含更多行(范围从00:00到23:59),spektrum files
包含更少的行。因此data_lvl1
中与data_lvl1
文件中的时间戳匹配的行应添加到var saltResult = null;
var hashResult = null;
async.series([
function(next) {
bcrypt.genSalt( 10, function(err, salt) {
saltResult = salt;
next(err);
});
},
function(next) {
bcrypt.hash(nwtp, saltResult, function(err, hash) {
hashResult = hash;
next(err);
});
}],
function(err) {
// your final processing here
}
);
文件中。
通过覆盖现有的第43和42列,或者将其添加到文件的末尾。
答案 0 :(得分:1)
您可以使用合并,如果要删除NaN
列,请使用函数dropna。
也许你不能先阅读csv,因为错误:
pandas.parser.CParserError:标记数据时出错。 C错误:第2行预计42个字段,见46
列数有问题。默认情况下,Pandas按第一行数据确定列数(可以是标题)。因此,在您的解决方案中,它建议使用42
列,但第二行是46
列
一种解决方案是将制表符添加到第一行。如果您要删除包含NaN
值的所有列,则可以添加相同数量的制表符或更多,因为函数dropna
会将其删除。
下一个解决方案是定义46列的所有名称。 link
我使用第一种方法添加制表符。
import pandas as pd
import numpy as np
import io
temp=u"""2014-11-05 08:00 0.19 0.16 0.00 0.16 9 14.0 14.1 14.0 69 8.4 0.0 SSE 0.00 0.4 SSE 14.0 13.6 13.6 14.7 1002.7 0.00 0.0 111 0.16 111 0.0 0.00 0.0 0.003 0.000 25.5 42 11.6 25.1 0.03 17 1 73.9 1 1.264390582977165 982.2914032430997
2014-11-05 08:01 0.19 0.15 0.00 0.15 9 14.1 14.1 14.1 69 8.5 0.4 SSE 0.03 1.8 SSE 14.1 13.6 13.6 14.9 1002.7 0.00 0.0 116 0.17 116 0.0 0.00 0.0 0.003 0.000 25.5 42 11.6 25.1 0.00 9 1 39.1 1 1.2642303482739734 982.4159036331284 47 40 62 65
2014-11-05 08:02 0.18 0.15 0.00 0.15 9 14.1 14.1 14.1 69 8.5 0.0 SSW 0.00 0.4 SSW 14.1 13.7 13.7 15.0 1002.9 0.00 0.0 118 0.17 118 0.0 0.00 0.0 0.003 0.000 25.6 42 11.7 25.2 0.00 16 1 69.6 1 1.2643326687934051 982.3363982086155
2014-11-05 08:03 0.18 0.14 0.00 0.14 9 14.1 14.2 14.1 69 8.5 0.0 SSW 0.00 0.9 SSW 14.1 13.7 13.7 15.1 1002.7 0.00 0.0 121 0.17 121 0.0 0.00 0.0 0.003 0.000 25.6 42 11.7 25.2 0.00 11 1 47.8 1 1.264371779179926 982.3060119275706
2014-11-05 08:04 0.18 0.14 0.00 0.14 9 14.2 14.2 14.2 69 8.6 0.4 S 0.03 1.3 S 14.2 13.7 13.7 15.1 1002.7 0.00 0.0 121 0.17 121 0.0 0.00 0.0 0.003 0.000 25.7 42 11.8 25.3 0.00 9 1 39.1 1 1.2642078834510273 982.4333610462828
2014-11-05 08:05 0.16 0.13 0.00 0.13 9 14.2 14.2 14.2 69 8.6 0.4 S 0.03 2.2 S 14.2 13.8 13.8 15.3 1002.8 0.00 0.0 125 0.18 125 0.0 0.00 0.0 0.003 0.000 25.7 42 11.8 25.3 0.00 18 1 78.3 1 1.2641495894315147 982.4786642208419
2014-11-05 08:06 0.16 0.13 0.00 0.13 9 14.3 14.3 14.2 69 8.7 3.1 S 0.19 6.3 SSW 13.6 13.8 13.1 14.7 1002.8 0.00 0.0 128 0.18 128 0.0 0.00 0.0 0.003 0.000 25.8 42 11.9 25.4 0.00 11 1 47.8 1 1.2641310901311893 982.4930418182402
2014-11-05 08:07 0.16 0.13 0.00 0.13 9 14.3 14.3 14.3 69 8.7 0.4 SSE 0.03 1.3 S 14.3 13.8 13.8 15.4 1002.7 0.00 0.0 128 0.18 128 0.0 0.00 0.0 0.003 0.000 25.8 42 11.9 25.4 0.00 9 1 39.1 1 1.2640878249125196 982.5266690516158
2014-11-05 08:08 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 69 8.7 0.0 SSW 0.00 0.4 SSW 14.3 13.9 13.9 15.5 1002.8 0.00 0.0 128 0.18 128 0.0 0.00 0.0 0.003 0.000 25.9 42 12.0 25.6 0.00 10 1 43.5 1 1.2640420201364455 982.5622726259796
2014-11-05 08:09 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 69 8.7 0.9 S 0.05 2.7 S 14.3 13.9 13.9 15.6 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 25.9 42 12.0 25.6 0.00 13 1 56.5 1 1.2640722442946564 982.5387794136938
2014-11-05 08:10 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 68 8.5 0.4 S 0.03 1.8 S 14.3 13.8 13.8 15.6 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.0 42 12.1 25.7 0.00 14 1 60.9 1 1.263973775777945 982.6153230398941
2014-11-05 08:11 0.16 0.12 0.00 0.12 9 14.3 14.4 14.3 68 8.5 0.4 SSE 0.03 1.8 S 14.3 13.8 13.8 15.6 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.1 41 11.8 25.7 0.00 12 1 52.2 1 1.2639454425247079 982.6373498520063
2014-11-05 08:12 0.15 0.12 0.00 0.12 9 14.3 14.3 14.3 68 8.5 0.4 SSE 0.03 0.9 SSE 14.3 13.8 13.8 15.6 1002.9 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.2 41 11.9 25.8 0.00 10 1 43.5 1 1.2639898014116238 982.6028648434778
2014-11-05 08:13 0.15 0.12 0.00 0.12 9 14.4 14.4 14.4 68 8.6 0.4 S 0.03 1.8 S 14.4 13.9 13.9 15.7 1002.8 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.3 41 12.0 25.8 0.00 10 1 43.5 1 1.263874621956528 982.6924114334497
2014-11-05 08:14 0.15 0.12 0.00 0.12 9 14.4 14.4 14.4 68 8.6 0.0 SSE 0.00 0.4 S 14.4 13.9 13.9 15.7 1002.7 0.00 0.0 137 0.20 137 0.0 0.00 0.0 0.003 0.000 26.5 41 12.2 26.1 0.00 14 1 60.9 1 1.2638742617490812 982.6926915033389
2014-11-05 08:15 0.15 0.11 0.00 0.11 9 14.4 14.4 14.4 68 8.6 0.4 S 0.03 1.3 S 14.4 13.9 13.9 15.9 1002.7 0.00 0.0 156 0.22 156 0.0 0.00 0.0 0.003 0.000 26.7 41 12.4 26.2 0.00 23 1 100.0 1 1.2638991682523613 982.6733264785339
2014-11-05 08:16 0.15 0.11 0.00 0.11 9 14.4 14.4 14.4 68 8.6 0.0 S 0.00 1.8 S 14.4 13.9 13.9 16.0 1002.8 0.00 0.0 158 0.23 158 0.0 0.00 0.0 0.003 0.000 26.9 41 12.6 26.4 0.00 23 1 100.0 1 1.2639438134514795 982.6386163546646 60 49 88 82
2014-11-05 08:17 0.15 0.12 0.00 0.12 9 14.4 14.5 14.4 68 8.6 0.4 S 0.03 1.8 S 14.4 13.9 13.9 16.1 1002.6 0.00 0.0 160 0.23 160 0.0 0.00 0.0 0.003 0.000 27.1 41 12.7 26.6 0.00 24 1 100.0 1 1.2637607975085479 982.780920605032"""
#for testing use io.StringIO(temp)
df = pd.read_csv(io.StringIO(temp), sep="\t", header=None)
#insteed io.StringIO(temp) use file
#df = pd.read_csv('data.csv', sep="\t", header=None)
print df
temp1=u"""2014-11-05 06:54 1.2821175173539188 968.709953018414
2014-11-05 07:55 1.2816088505861456 969.0944311378387
2014-11-05 07:56 1.2812624875214302 969.3564059637908
2014-11-05 07:57 1.2810378335850467 969.5264007341631
2014-11-05 07:58 1.280514458802534 969.9226677701473
2014-11-05 07:59 1.2804410978592646 969.9782380278693
2014-11-05 08:00 1.2799436634193884 970.3552081987569
2014-11-05 08:01 1.2793760789237318 970.7856981700221
2014-11-05 08:02 1.2788601016214594 971.1773777485712
2014-11-05 08:03 1.2787234324253685 971.2811766061762
2014-11-05 08:04 1.2786275370664746 971.3540213982033
2014-11-05 08:05 1.2786632282014252 971.3269081390605"""
#for testing use io.StringIO(temp1)
df = pd.read_csv(io.StringIO(temp1), sep="\t", header=None)
#insteed io.StringIO(temp1) use file
#df = pd.read_csv('spectrum.csv', sep="\t", header=None)
print df1
#you can remove columns, where are NaN values
df = df.dropna(axis=1, how='any')
print df
#merge by first column - by dates
result = pd.merge(df, df1, on=0)
#fill NaN values by empty string
result = result.fillna('')
print result
print result.to_csv(header=False, index=False)