2017-03-01 24 views
0

我是編程新手,需要做一些(也許非常基本的)工作,但是我非常努力。 我有一些CSV文件,當在Excel中打開時,它有1500行和500列以及除第一行(某種頭)的第一個元素之外的所有數字。我需要做的東西就像在前60行的元素上添加和減少完整的行。在Python中導入CSV並操縱數據

我在導入文件時遇到了一些麻煩。當我只是使用readcsv,然後將它們添加到空的數據集行bu行我得到所需的格式(行列表?),但所有的元素是字符串而不是浮動(可能是因爲文件中的第一個元素是一個字符串?)我不能讓他們轉換爲浮動,所以也許你可以幫我一點點。

另一件事是我如何實際操縱數據的某個部分,如循環經過一定數量的行。我無法真正理解它,因爲字符串上的數學事物不工作。

在此先感謝您的幫助和意見!

+1

它將幫助,如果你發佈你正在使用的代碼。你檢查過模塊'pandas'嗎?它被設計用於數據操作。 – MattR

回答

1

我用下面的,它工作正常:

import numpy 
csv = numpy.loadtxt('something.csv', delimiter = ',') 

如果你想跳過第一行,你可以這樣做:

csv = numpy.loadtxt('something.csv', delimiter = ',', skiprows = 1) 

如果你想在工作第60行:

X = csv[:60,:] 

然後你只需要使用X你想要的東西。 希望它有幫助

0

我不認爲,如果第一個單元格是字符串整列是字符串類型...這可能是該列的標籤。嘗試從第2行訪問數據或明確命名列

例如

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訪問列[「一」]或AF [「B」]

+0

是的,熊貓是一個很好的方法,但它有500列,你怎麼能通過名字訪問它們?只是說:P – CrisH

+0

coool:D但很快我們應該找到一種可以標記數據集的方法:D;) – Berry

0

你需要的是大熊貓數據幀read_csv

  1. 以下代碼會自動識別您的標題並將標題設置爲列名稱。

    import pandas as pd 
    data = pd.read_csv('Your file name.csv') 
    
  2. 關於你的數據的字符串格式的問題,有沒有辦法幫你沒有一些樣本數據。

  3. 我需要做的事情就像對前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行平均減去到整個行,就像在列中的所有行,你可以這樣做:

    data['a_add'] = data.a + data_avrg.a 
        data['a_subtract'] = data.a - data_avrg.a 
    
+0

非常感謝!它現在實際上很好地導入它,我可以使用它! –