gpt4 book ai didi

python - 有没有办法组织一个两列的 csv 数据文件,以便在经过一定时间间隔(即 365 天)后它会换行?

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:18 27 4
gpt4 key购买 nike

我拥有的csv文件是收集到两大列的数据:一列是我需要的每日数据,另一列是当天关联的变量。我想在一年的每日数据之后中断,并将该数据显示在 pandas 表中,其中第一年的开始到结束水平显示,并且变量应该位于正下方。因此,为了澄清,年份应该有自己的列,然后水平显示每日数据,并在正确年份的相应日期下显示变量数据。现在,我的所有数据都合并在一起,因此数据始终都在一个长列中,我无法真正构建我的代码来以这种方式使用它。

我之前查过这个,但没有找到任何真正描述我情况的内容。我在想也许拼接函数可能会有所帮助,但我知道的还不够,而且我也希望它是动态的。它需要能够修改其他 csv 文件,以便它们从一年的第一天开始读取,然后显示为表格。

示例:

我的数据文件如下所示:

时间温度
1900-01-01 50
1900-01-02 52
1900-01-03 55
……
2019-04-05 60

所以我想将年份分成一列,并按日期(1月1日...12月31日)水平排序作为行标题,然后将下面相应的温度数据排序到正确的年份中。

最佳答案

这绝对是很有可能的。步骤是首先将所有数据分解成一个数组。

const rawText = // import your csv somehow
const rawRows = rawText.split("\n"); // split at newlines

然后将原始行映射到实际数据

const rows = rawRows.map((row) => {
const cells = row.split(",");
return {
date: new Date(cells[0]),
value: parseInt(cells[1])
};
});

我建议您在解决这个问题时使用console.logs。确保每个阶段都会给你一个你喜欢的元素。然后,一旦获得所有行,就开始将它们按年份排序。

const years = [];
// this could technically be done in the loop above
rows.forEach((row) => {
const year = row.date.getYear() - START_YEAR;
years[year] = row;
});

然后将您的年份数组重新生成为 csv。 csv 是“逗号分隔值”,每行末尾有一个换行符。

let csv = "";
const mostEntriesYear = years.reduce((a, b) => Math.max(a.length, b.length));
for (let entry = 0; entry < mostEntriesYear; entry++) {
for (let year = 0; year < years.length; year++) {
if (year != 0) { csv += ","; }
const row = years[year];
csv += row.date + "," + row.value;
}
csv += "\n";
}

这些代码都没有经过测试,但您应该能够将其拼凑成您正在寻找的东西。

关于python - 有没有办法组织一个两列的 csv 数据文件,以便在经过一定时间间隔(即 365 天)后它会换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55583850/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com