pandas - 如何将具有多个数据的 csv 导入不同的数据帧?
问题描述
这是我作为输入的csv:
我想为每个变量创建 3 个数据框BEL AIR - feeder_30 - MANGUIER
:BEL_TC_30_TR3_MW
和BEL AIR - feeder_30 - MTOA
. 它将具有Date
作为索引和值的Valeur
值。
我试过这个:
data_adms = pd.read_csv(full_path,sep=';',index_col=False, header=6)
但它摆脱了nom du point distant
. 并且行之间的时间戳不一样。
有人知道我该如何正确进行吗?
解决方案
因此,给定以下 csv 文件:
0 1 ... 10 11
0 Source PUISSANCE ACTIVE ... NaN NaN
1 Nom du point distant BEL AIR - feeder_30 - MANGUIER ... NaN NaN
2 Propriétaire Puissance active ... NaN NaN
3 Unité Kw ... NaN NaN
4 Phase L1 L2 L3 ... NaN NaN
5 Echantillonnage Moyenne (Interval : 01:00) ... NaN NaN
6 Date Valeur ... Qualité Indicateurs
7 01/09/2020 13:53 5189,60325 ... Discutable NaN
8 02/09/2020 13:54 5043,68066 ... Discutable NaN
9 03/09/2020 13:55 4805,71191 ... Discutable NaN
您可以像这样获得名称和列号:
raw_data = pd.read_csv(
filepath_or_buffer="./file.csv", sep=";", header=None, engine="python"
)
data = {raw_data.loc[1, x]: x for x in range(1, raw_data.shape[1], 4)}
print(data)
# Outputs
{'BEL AIR - feeder_30 - MANGUIER': 1, 'BEL_TC_30_TR3_MW': 5, 'BEL AIR - feeder_30 - MTOA': 9}
然后,您可以导入数据框并将它们与其名称配对,如下所示:
dfs = []
for name, col in data.items():
df = pd.read_csv(
filepath_or_buffer="./scripts/test.csv",
sep=";",
header=0,
skiprows=6,
usecols=[col - 1, col],
engine="python",
)
df.columns = ["Date", "Valeur"]
df.set_index("Date", inplace=True)
df.columns.name = name
dfs.append(df)
在这种情况下:
for df in dfs:
print(df)
# Outputs
BEL AIR - feeder_30 - MANGUIER Valeur
Date
01/09/2020 13:53 5189,60325
02/09/2020 13:54 5043,68066
03/09/2020 13:55 4805,71191
BEL_TC_30_TR3_MW Valeur
Date
01/09/2020 13:53 -47,3029671
02/09/2020 13:54 -5,829510403
03/09/2020 13:55 1,52590215
BEL AIR - feeder_30 - MTOA Valeur
Date
01/09/2020 13:53 5189,60325
02/09/2020 13:54 5043,68066
03/09/2020 13:55 4805,71191
推荐阅读
- python - Flask Admin 模型视图页面自动刷新
- node.js - 将 Mongoose 嵌套模式发布到 MongoDB
- python - ValueError:x 和 y 的大小必须相同。散点图问题
- python-3.x - 如何在 Python 中将变量名转换为字符串
- fortran - LAPACK 程序(Fortran 90)的数值精度不够?
- typescript - 是否可以在打字稿中重用泛型类型?
- python - 在 Windows 上从交互式提示打印 Python 历史记录
- sql - MS Access:多表形式,其中一个表被调用两次
- amazon-web-services - 如何在无服务器中获取 aws lambda arn?
- swift - macOS 如何在 VoiceOver 辅助功能期间对多个标签进行分组和聚焦