假设我有多个CSV文件,它们的x和y坐标都从第15行的1和2列开始。 我只想浏览运行此脚本的文件夹中的所有CSV文件,并仅绘制x和y。
到目前为止,我的想法是在当前目录中使用glob并导入熊猫,以便我可以使用“ .read_csv”。
但是,我不太确定如何设置要遍历所有.csv文件的for循环
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
headers = ['x', 'y']
df = pd.read_csv('C:\Users\User1\Downloads\DataLog.CSV',names=headers)
print (df)
# plot
plt.plot(x,y)
plt.show()
到目前为止,这就是我要使它在单个文件上运行的目的。 但是,运行此操作会产生错误。
(unicode错误)“ unicodeescape”编解码器无法解码位置2-3中的字节:\ UXXXXXXXX转义被截断
答案 0 :(得分:0)
这是非常不确定的,因此,我只能给您一个有关我通常如何做的一般示例,您必须自己弄清楚具体情况下发生的错误。
from glob import glob
import pandas as pd
import matplotlib.pyplot as plt
All_files = glob('*.csv')
headers = ('x','y')
for file in All_files:
name = file.split('.csv')[0]
df = pd.read_csv(file,
names=headers,
skiprows=15)
x,y = df['x'], df['y']
fig, ax = plt.subplots(figsize=(7,4))
ax.plot(x,y)
plt.tight_layout()
plt.savefig(name+'.png', dpi=300, bbox='tight')
发生unicode错误,因为您指定的文件路径开头没有'r'。 python中的字符串通常需要声明为“原始”字符串,以免被误解。您的文件路径:
'C\users\...'
包含一个'\ u',它被解释为Unicode转义字符。在python中,您要么必须声明以字符串'\'开头的字符串文字,要么在其前面加上r:
'C\\users\\...'
要么
r'C\users\...'