iT邦幫忙

0

[Python]DataFrame擷取資料相關問題

  • 分享至 

  • xImage

想請問我有一組Series資料(ALL)及一組DataFrame資料
Series資料
https://ithelp.ithome.com.tw/upload/images/20220410/201477588CF0YWJc9c.jpg
DataFrame資料
https://ithelp.ithome.com.tw/upload/images/20220410/20147758Cwdn5aNMtR.jpg
想將兩組資料中id相同的資料取出
目前寫的程式碼如下
`
ID = pd.read_excel("py.xlsx",sheet_name = 'ID')
A = pd.read_excel("py.xlsx",sheet_name = 'A')

ID = pd.DataFrame(ID)
A = pd.DataFrame(A)
ID.reset_index(inplace=True, drop=False)
A.reset_index(inplace=True, drop=False)
print(A)

for i in A['ID']:
for j in ID['ALL_ID']:
if i == j:
c = A.loc[i]
print(c)
`
但出現如圖錯誤
https://ithelp.ithome.com.tw/upload/images/20220410/20147758s1DJc73f77.jpg
python新手,還請各位指教,謝謝

tomlin100 iT邦新手 2 級 ‧ 2022-04-11 08:51:18 檢舉
ID = pd.DataFrame(ID)
A = pd.DataFrame(A)
這兩行應該是不需要的
你前面使用 pd.read_excel()就已經是DataFrame了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
mackuo
iT邦研究生 1 級 ‧ 2022-04-11 08:54:26
最佳解答

不曉得你的問題是不是如下:
假設有一個ALL_ID的工作表,是所有學生的資料:
https://ithelp.ithome.com.tw/upload/images/20220411/201223350NYX8zfZ18.jpg

然後有個ID工作表,是你要找出這些ID,將學生資料篩選出來:
https://ithelp.ithome.com.tw/upload/images/20220411/20122335lfXnWN66rb.jpg

最後的結果:
https://ithelp.ithome.com.tw/upload/images/20220411/20122335gu7lW5d1yV.jpg

程式:

import pandas as pd
df1 = pd.read_excel('學生資料範例檔.xlsx', sheet_name='ALL_ID')
df2 = pd.read_excel('學生資料範例檔.xlsx', sheet_name='ID')

df = df1[df1['ID'].isin(df2['ID'])]
df
0
小魚
iT邦大師 1 級 ‧ 2022-04-11 16:27:14

c = A.loc[i]
陣列只到20, 結果要取21跳的錯誤吧.

我要發表回答

立即登入回答