2017-03-05 49 views
0

我成功,輸出我的數據框到excel,但有額外的不需要的括號和撇號我想刪除。試圖刪除方括號和撇號的數據框列表當我輸出到excel

data1 = [x.split(',') for x in self.ismyFirstrange1] 
    data2 = [y.split(',') for y in self.isFirst1] 
    dataf1 = pd.DataFrame({'range 2456500 - 2556499': data1}) 
    dataf2 = pd.DataFrame({'range 2456500 - 2556499': data2}) 
    frames = [dataf1, dataf2] 


    result = pd.concat(frames, keys=['firstRange', 'secondRange'], axis=1, join='inner') 
    pprint(result) 

    df = pd.DataFrame(result) 
    writer = pd.ExcelWriter('outputbarcode.xlsx') 
    df.to_excel(writer, 'Sheet1') 

    writer.save() 

輸出到Excel看起來是這樣的:

 A 
1 ['2506588'] 
2 ['2540181'] 
3 ['2553486'] 
4 ['2540181'] 
5 ['2540389'] 
6 ['2553384'] 

我希望它

 A 
1 2506588 
2 2540181 
3 2553486 
4 2540181 
5 2540389 
6 2553384 

我才發現,我需要爲str,地方代替它,但不知道是怎麼回事完成。 請幫助

回答

0

嘗試預處理的第一列:

df.iloc[:, 0] = df.iloc[:, 0].str[0].astype(int) 
+0

我轉換他們的字符串,我想到了被海峽。 – johnobc

+0

@JohnOlegario不要將數據過早轉換爲字符串 - 如果需要,您將丟失可能需要轉換數據的信息。 –

+0

它們被轉換,所以我可以拆分它們中的數據。這是必要的,我成功的我需要實現的,只是當我輸出到excel方括號出現 – johnobc

0

如果值列表:

df['column name'] = df['column name'].str[0].astype(int) 

如果字符串:

df['column name'] = df['column name'].str.strip('[]').astype(int) 

您可以通過檢查:

還可以省略:

df = pd.DataFrame(result) 

因爲resultDataFrame了。

所以:

result = pd.concat(frames, keys=['firstRange', 'secondRange'], axis=1, join='inner') 
#if need reset index to default 
result = result.reset_index(drop=True) 
pprint(result) 

writer = pd.ExcelWriter('outputbarcode.xlsx') 
result.to_excel(writer, 'Sheet1') 
+0

dataframe對象沒有屬性col? – johnobc

+0

col是列名 – jezrael

+0

什麼返回'pprint(result.columns.tolist())'? – jezrael