學習pandas兩天了,關於這個增加行的問題一直困擾著我,測試了幾個**,終於搞通了一點(昨天是因為**敲錯了。。。)
直接上**:
1 dates = pd.date_range('建立了乙個名為df1的dataframe,其中資料為24為排列數,關鍵是index的取值,我這裡用的pandas自帶的日期序列函式生成的dates20170101
',periods=6)
2 df1 = pd.dataframe(np.arange(24).reshape((6,4)),index = dates,columns=['
a','
b','
c','
d'])
生成的df1如圖:
這裡可以看到index的名稱為date_time格式的
需要加入新的一行時,我採用了loc函式:
df1.loc[pd.to_datetime('按照之前的index的格式新增,顯然增加的新行和之前行的形式是相同的:20170108
'),['
a','
b','
c','
d','
e']] = [1,2,3,4,5]
(這裡多新增了一行,不牽扯)
但是如果,新增的index和之前的資料型別不同時,會報錯麼?
試一試:
df1.loc['這裡我將乙個字串』20180108『,新增到新行的index,本以為會報錯,結果:20180108
',['
d','
e']]=[1,2]
新增成功了,不過**的格式也發生更改了,date_time原本隱藏的時間00:00:00顯示出來。接著我新增相同名稱的int32位變數試試:
df1.loc[20180108,['同樣新增成功,神奇的一幕發生了:e','
c']] = [1,3]
出現了兩個完全相同的index:20180108
這是為什麼呢?原來是因為,上面那行的20180108的資料型別是str,而下面那行的20180108資料型別是int32,系統判斷是兩個完全不同的資料,所以會出現兩個完全相同的index在**中
接著,再新增乙個date_time格式的』20180108『吧:
df1.loc[pd.to_datetime('結果不出所料:20180108
'),['
a','
b']] = [3,4]
成功新增。
至此,pandas的新增行操作原理基本搞明白了,keep learning。
關於pandas的一些使用
該函式只對dataframe或series型別有效,用於去除重複值。引數有三個 舉個例子 dataframe pd.read excel data.xlsx dataframe2 pd.read excel data.xlsx dataframe.drop duplicates subset non...
關於pandas的一些筆記
print df.loc 1,row labels 取行索引為1,列索引為row labels的資料 8 t1 df.loc 1,2 取第一行和第二行,等價於df.loc 1,2 9 t2 df.loc 1,2 row labels count animalname 取塊10 t3 df.iloc ...
關於jquery索引的一些困惑
今日同事很正式的向我提出了兩個關於jquery的問題,我也很正式得做了回答,順便把原始碼貼到這裡希望對朋友們有所幫助 問題一 為什麼現在彈出來每個button 在ul li中的 的索引值都是零,為什麼不是從0 9排列的 答 第乙個匹配元素的 index,相對於同胞元素,獲得第乙個匹配元素相對於其同胞...