我正在将多个.csv导入一个数据帧。每个.csv文件都有相同的列数和列名
第一列是x,其他n列都是y。每x列从0开始,继续执行某些步骤,例如=0.5或0.25,并结束到列的长度
当我加入多个文件时,我希望第二个文件从第一个文件的最后一个值+时间步继续,第三个、第四个和第n个.csv文件也是如此
例如,第一个.csv文件x列以值6结尾,时间步长为0.25,因此第二个.csv文件应继续6+0.25=6.25
我使用一个代码从以下位置加载数据帧中的多个.csv文件:
Import multiple csv files into pandas and concatenate into one DataFrame
下面是两张描述我问题的图片:
如果在加载每个.csv文件后保留列值:https://imgur.com/zNchMOa
这就是我在加载所有.csv文件时需要实现的:https://imgur.com/dqk2qza
CSV文件:
https://sharecsv.com/s/14b6f07c30a95080c911da98d6017a2a/test1.csvhttps://sharecsv.com/s/a7463838fb74d42c603c407ef9f904dd/test2.csvhttps://sharecsv.com/s/6dbebaef902ca916bdb93b51c34f1a82/test3.csvhttps://sharecsv.com/s/a52562cbf5be32026644befda5d66139/test4.csv
我尝试从新创建的数据帧中的第一个.csv文件获取时间步长,获取新数据帧的长度,然后用新值替换列X
您可以在下面找到我的代码和手动解决方案,我想自动执行:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
import glob
# Importing Multiple Data:
path = r'C:\Users\All...'
all_files = glob.glob(os.path.join(path, "*.csv"))
df_from_each_file = (pd.read_csv(f) for f in all_files)
df = pd.concat(df_from_each_file, ignore_index=True)
# Plot 1
plt.plot(df["x"], df["y1"], "r")
# Replace X values (manualy)
dt = df["x"][1]-df["x"][0] # Time step (Manualy added)
n = pd.Series(np.arange(0, len(df["y1"])))*dt # n is replacing x in df
df["x"] = n
# Plot 2
plt.plot(df["x"], df["y1"], "b")
目前没有回答
相关问题 更多 >
编程相关推荐