我有两个来自不同来源的csv数据文件,我想合并。两个文件的每一行都有一个字符串时间戳,但周期非常不同 - 一个是每2秒,另一个是每小时。我可以将它们导入到Pandas中,并尝试合并它们但有2个问题。
1)我可以使用pd.to_datetime将时间戳转换为pandas datetime64对象,但这会创建一个新系列,从而丢失数据列。转换是否可以“就地”完成? 我的尝试是: newdf = pd.to_datetime(calc_insol.iloc [:,0])#calc_insol是DF
2)假设我可以将两个DF都设置为正确的日期时间格式,如果时间戳周期的差异很大,它们是否可以合并。
每个DF的摘录如下所示。字符串时间戳为col 0,“data”为col 1 calc_insol:
0 2017-May-19 2:00:00 0
1 2017-May-19 3:00:00 0
2 2017-May-19 4:00:00 0
3 2017-May-19 5:00:00 0
4 2017-May-19 6:00:00 0
5 2017-May-19 7:00:00 0
6 2017-May-19 8:00:00 497.5
7 2017-May-19 9:00:00 685.2
8 2017-May-19 10:00:00 768.4
9 2017-May-19 11:00:00 806.3
10 2017-May-19 12:00:00 816.6
11 2017-May-19 13:00:00 803.1
12 2017-May-19 14:00:00 760.6
13 2017-May-19 15:00:00 668.7
14 2017-May-19 16:00:00 456.8
15 2017-May-19 17:00:00 0
16 2017-May-19 18:00:00 0
17 2017-May-19 19:00:00 0
18 2017-May-19 20:00:00 0
19 2017-May-19 21:00:00 0
20 2017-May-19 22:00:00 0
21 2017-May-19 23:00:00 0
22 2017-May-20 0
meas_insol:
2017-May-19 11:59:57 89.8
2017-May-19 11:59:59 80.57
2017-May-19 12:00:01 90.64
2017-May-19 12:00:03 93.15001
2017-May-19 12:00:05 85.6
2017-May-19 12:00:07 78.89
2017-May-19 12:00:09 85.6
2017-May-19 12:00:11 75.53
2017-May-19 12:00:13 93.99
2017-May-19 12:00:15 93.15001
2017-May-19 12:00:17 92.32
2017-May-19 12:00:19 87.28
2017-May-19 12:00:21 77.21
2017-May-19 12:00:23 92.32
2017-May-19 12:00:25 79.73001
2017-May-19 12:00:27 76.37001
2017-May-19 12:00:30 74.69
2017-May-19 12:00:32 88.96
2017-May-19 12:00:34 73.85
2017-May-19 12:00:36 78.89
2017-May-19 12:00:38 76.37001
2017-May-19 12:00:40 77.21
2017-May-19 12:00:42 88.12
2017-May-19 12:00:44 87.28
2017-May-19 12:00:46 88.12
2017-May-19 12:00:48 79.73001
2017-May-19 12:00:50 74.69
2017-May-19 12:00:52 77.21
2017-May-19 12:00:54 83.92
2017-May-19 12:00:56 73.85
2017-May-19 12:00:58 83.92
2017-May-19 12:01:00 83.08001
2017-May-19 12:01:02 74.69
2017-May-19 12:01:04 78.89
2017-May-19 12:01:06 73.85
2017-May-19 12:01:08 86.44
2017-May-19 12:01:10 74.69
2017-May-19 12:01:12 73.01
2017-May-19 12:01:14 68.82
2017-May-19 12:01:16 83.92
理想情况下,完成的DF将col 0作为datetime对象,col 1将是来自calc_insol的数据,而col 2将是来自meas_insol的数据。 任何帮助将不胜感激。
答案 0 :(得分:1)
我认为您需要创建新的class Color {
public:
static const int MAX = 0xffff;
Color(int red, int green, int blue, int alpha = MAX);
// stuff
static const Color red;
static const Color green;
static const Color blue;
static const Color white;
static const Color black;
// ...
private:
int m_red;
int m_green;
int m_blue;
int m_alpha;
};
const Color Color::red(MAX, 0, 0);
const Color Color::green(0, MAX, 0);
const Color Color::blue(0, 0, MAX);
const Color Color::white(MAX, MAX, MAX);
const Color Color::black(0, 0, 0);
列并与它们合并,然后按drop
删除datetime
列 - 然后原始列不会更改:
new