我是编程新手,我需要做一些(也许是非常基本的)东西,但我真的很挣扎。 我有一些CSV文件,当在excel中打开时,它包含1500行和500列,除了第一行的第一个元素(某种标题)之外的所有数字。我需要做一些事情,比如前60行的元素,并添加和减去完整的行。
我在导入文件时遇到了一些麻烦。当我只使用readcsv然后将它们添加到空数据集行时,我得到所需的格式(行列表?)但所有元素都是字符串而不是浮点数(可能是因为文件中的第一个元素是字符串?)我不能让他们转换成花车所以也许你可以帮助我一点点。
另一件事是我如何实际操作数据的某个部分,比如循环经过一定数量的行。我无法弄明白,因为字符串上的数学事物不起作用。
提前感谢您的帮助和评论!
答案 0 :(得分:1)
我使用以下内容并且工作正常:
import numpy
csv = numpy.loadtxt('something.csv', delimiter = ',')
如果你想跳过第一行,你可以这样做:
csv = numpy.loadtxt('something.csv', delimiter = ',', skiprows = 1)
如果你想在前60行操作:
X = csv[:60,:]
然后您只需使用X即可。 希望它有所帮助
答案 1 :(得分:0)
我不认为如果第一个单元格是字符串整列是字符串类型...那可能是该列的标签。尝试访问第二行中的数据或明确命名列
例如
df = pd.DataFrame({'$a':[1,2], '$b': [10,20]})
print df
输出
$a $b
0 1 10
1 2 20
您可以通过
更改列的名称df.columns = ['a', 'b']
输出
a b
0 1 10
1 2 20
更改名称后,您可以按df [' a']或af [' b']
访问该列答案 2 :(得分:0)
您需要的是pandas数据框中的read_csv。
以下代码会自动识别您的标题并将标题设置为列名。
import pandas as pd
data = pd.read_csv('Your file name.csv')
关于数据字符串格式的问题,没有一些示例数据就无法帮助您。
我需要对前60行的元素进行平均,然后添加和减去完整的行。
对于前60行的平均值,您可以执行以下操作:
import pandas as pd
lst1 = range(100)
lst2 = range(100,200)
lst3 = range(200,300)
data = pd.DataFrame({'a': lst1,'b': lst2,'c': lst3})
data_avrg = data[:60].mean()
In[20]:data_avrg
Out[20]:
a 29.5
b 129.5
c 229.5
dtype: float64
如果要向整行添加或减去60行的平均值,就像列a中的所有行一样,您可以这样做:
data['a_add'] = data.a + data_avrg.a
data['a_subtract'] = data.a - data_avrg.a