在数据框中导入多个csv并更改新创建的df

时间:2019-08-02 15:08:21

标签: python pandas csv dataframe

我需要将多个.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")

谢谢!

0 个答案:

没有答案