我需要将多个.csv导入一个数据帧。每个.csv文件具有相同的列数和相同的列名。第一列为x,所有其他n列为y。每个x列均以0开头,然后继续执行某些步骤,例如。 = 0.5或0.25,并结束到列的长度。当我加入多个文件时,我希望第二个文件从第一个文件+时间步的最后一个值开始继续,对于第三,第四和第n个.csv文件也是如此。
我使用了代码从以下位置加载数据框中的多个.csv文件:
Import multiple csv files into pandas and concatenate into one DataFrame
这里有两个描述我的问题的图像:
这是我在加载每个.csv文件后保留列值的情况: https://imgur.com/zNchMOa
这是我需要实现的目标: https://imgur.com/dqk2qza
CSV文件:
sharecsv.com/s/14b6f07c30a95080c911da98d6017a2a/test1.csv sharecsv.com/s/a7463838fb74d42c603c407ef9f904dd/test2.csv sharecsv.com/s/6dbebaef902ca916bcsbc4f5a4test5c4f4ada。 >
下面您可以找到我要自动执行的代码和手动解决方案:
# Importing the Libraries:
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")
谢谢!