我有一个csv表,如下所示。我想转换所有的值从列[1]开始,从结点的当前值到m/s使用公式:value/0.514444。然后,我想将该文件保存为新的csv文件。我试图列出for循环如下,但我得到错误。我是python的新手,不确定我做错了什么。有没有一种方法来改变值,就像写在我的草案,而不读取csv作为一个数组?任何评论将不胜感激。很多谢谢!
表是这样的:
number, column1, column2
1, 33.1730, 30.7346
2, 33.1730, 30.5905
3, 32.8460, 30.5905
我的脚本给出错误:
import pandas as pd
eventtable = pd.read_csv(r'C:Temptesttest_combined.csv')
for col in range(1,len(eventtable.columns)):
for row in range(1,len(eventtable)):
eventtable[row,col]/0.514444
eventtable.to_csv(r'C:Temptesttest_combined_convert.csv')
您可以使用applymap
将函数应用于整个数据框架。请在读取csv时将number
设置为索引列,以避免函数也应用于该列:
import pandas as pd
import io
data = '''number, column1, column2
1, 33.1730, 30.7346
2, 33.1730, 30.5905
3, 32.8460, 30.5905'''
df = pd.read_csv(io.StringIO(data), sep=',s+', index_col='number', engine='python')
df = df.applymap(lambda x: x/0.514444)
df.to_csv('filename.csv')
结果:
column264.4832 59.7433 363.8476 59.4632