每次分析資料過程中,總是會遇到各種問題,一時間想不起來。都說事不過三,這事出了不少次數了,這裡還是記下來,但是可能不那麼全,記下來也僅僅為了以後本人自己需要。
這裡宣告如下三個dataframe
b = np.random.random((3,2))
a = pd.dataframe(b,columns=['a1','a2'])
c = np.random.random((3,2))
c = pd.dataframe(c,columns=['c1','c2'])
b = pd.dataframe(np.random.random((3,2)),columns=['c1','c2'])
對應的有:
a
out[9]:
a1 a2
0 0.193384 0.088973
1 0.013379 0.381474
2 0.975780 0.431396
bout[18]:
c1 c2
0 0.181912 0.312157
1 0.760391 0.082399
2 0.313043 0.625784
cout[12]:
c1 c2
0 0.465802 0.646758
1 0.383527 0.113343
2 0.282318 0.870743
注意到,三個dataframe
都是三行兩列資料,其中b、c的列標籤相同。
1.dataframe取行
i).取單行
有三種方式:
1.b.iloc[[i]]
取第i
行
in [20]: b.iloc[[1]]
out[20]:
c1 c2
1 0.760391 0.082399
2.b.iloc[i]
取第i
行,與第一種方式的返回結果稍有區別
in [21]: b.iloc[1]
out[21]:
c1 0.760391
c2 0.082399
name: 1, dtype: float64
3.b.ix[i]
取第i
行
in [22]: b.ix[1]
d:\anaconda3\scripts\ipython:1: deprecationwarning:
.ix is deprecated. please use
.loc for label based indexing or
.iloc for positional indexing
see the documentation here:
out[22]:
c1 0.760391
c2 0.082399
name: 1, dtype: float64
ii).取多行
1.取連續的多行
i.可以使用類似於列表切片的方式
b[:-1]
out[23]:
c1 c2
0 0.181912 0.312157
1 0.760391 0.082399
ii可以使用iloc
高階切片
b.iloc[-1:,:]
out[25]:
c1 c2
2 0.313043 0.625784
2.dataframe取列
取單列1.使用列名取列
b['c1']
out[26]:
0 0.181912
1 0.760391
2 0.313043
name: c1, dtype: float64
2.使用iloc
取
b.iloc[:,:-1]
out[24]:
c10 0.181912
1 0.760391
2 0.313043
上面的形式可以描述為:第乙個:
前面為空代表取所有行
3。上面寫了半天,感覺有點浪費時間 —
3.dataframe合併
前面的三個dataframe
中,其中b、c的列標籤相同。
i)相同列索引
out[27]:
c1 c2
0 0.181912 0.312157
1 0.760391 0.082399
2 0.313043 0.625784
0 0.465802 0.646758
1 0.383527 0.113343
2 0.282318 0.870743
ii)相同的行索引
在行索引值也就是index
值相同時,如這裡的a、b、c都是行索引相同的dataframe
,應該如何合併呢???注意到b和c的行索引值和列索引值都相同,所以沒有辦法使用join合併
b.join(a)
out[33]:
c1 c2 a1 a2
0 0.181912 0.312157 0.193384 0.088973
1 0.760391 0.082399 0.013379 0.381474
2 0.313043 0.625784 0.975780 0.431396
in [34]: c.join(a)
out[34]:
c1 c2 a1 a2
0 0.465802 0.646758 0.193384 0.088973
1 0.383527 0.113343 0.013379 0.381474
2 0.282318 0.870743 0.975780 0.431396
上面這倆足夠應付我現在遇到的內容了。 Spark 解析XML檔案到DataFrame
公司遇到一點需求,平時load檔案基本上都是csv格式的檔案,可是就有那麼乙個檔案是xml檔案,這也正常,因為檔案是別的team推過來的,自然要遵循他們的格式,於是就要想辦法解析xml檔案。目標是把xml檔案轉換為dataframe,然後寫到表中。可是spark.reader並沒有讀取xml格式檔案...
Pandas統計分析基礎之DataFrame
3 更改dataframe中的資料 4 增加dataframe中的資料 刪除dataframe中的資料 dataframe類似於資料庫的表或者excel的 panda將資料讀取之後,以dataframe的資料結構儲存在記憶體中。下面就來介紹一下dataframe的增刪查改操作。因為dataframe...
Python 「合併字典」
def count dicts dict1,dict2 differ set dict1 set dict2 same set dict1 set dict2 print same print differ for key in same dict1 key dict2 key for key in...