python合併dataframe物件

2021-09-13 19:34:33 字數 3287 閱讀 6882

每次分析資料過程中,總是會遇到各種問題,一時間想不起來。都說事不過三,這事出了不少次數了,這裡還是記下來,但是可能不那麼全,記下來也僅僅為了以後本人自己需要。

這裡宣告如下三個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...