欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于DataFrame數(shù)據(jù)的查詢和編輯

 更新時間:2024年09月12日 13:53:23   作者:瑞雪兆豐年(潤 )  
在使用pandas處理DataFrame時,可通過列索引標簽獲取列數(shù)據(jù),行數(shù)據(jù)的獲取可以利用行索引或位置切片,如iloc和loc方法,增加數(shù)據(jù)時,可通過append方法增加行,直接賦值增加列,刪除數(shù)據(jù)則通過drop方法,通過設(shè)置axis參數(shù)確定是刪除行還是列

(不少于4個代碼案例,選取行,選取列,增加行,刪除行)

查詢【一般都是通過索引來操作的】

1.選取列

通過列索引標簽或者屬性的方式可以單獨獲取DataFrame的列數(shù)據(jù),返回數(shù)據(jù)類型為Series。

在選取列時不能使用切片的方式,超過一個列名用df[['列名1','列名2']]

# 選取列
import pandas as pd
import numpy as np
data = {
    'name':[楊大潤','李玉芳','馬慶顯'],
    'age':[21,19,23],
    'address':['蘭州','上海','北京']
}
df = pd.DataFrame(data)
print(df)
w1 = df['name']
print("以列名取一列數(shù)據(jù):\n", w1)
w2 = df[['name','age']]
print("以列名取兩份數(shù)據(jù):\n", w2)

2.選取行

通過行索引或者行索引位置切片形式獲取行數(shù)據(jù)【從0開始的,左閉右開】。

DataFrame提供的head【開頭開始】和tail【結(jié)尾】可以取連續(xù)多行數(shù)據(jù),sample可以隨機抽取并顯示數(shù)據(jù)

# 取行  從0開始的
import pandas as pd
data = {
    'name':['楊大潤','李玉芳','馬慶顯'],
    'age':[21,19,23],
    'address':['貴州','上海','北京']
}
df = pd.DataFrame(data)
print(df)
print('顯示前兩行:\n', df[:2])
print('顯示2行:\n', df[1:2])
# head從第一行取,默認前五行
print(df.head())
print(df.head(1))
# tail默認最后五行   可以帶數(shù)字取最后的
print(df.tail())
print(df.tail(1))
# sample隨機抽取n行顯示
print(df.sample(1))

3.讀取行和列

切片選取行限制比較大,取單獨的幾行數(shù)據(jù)可以采用Pandas提供的iloc和loc方法實現(xiàn)。

用法:

  • DataFrame.loc(行索引位置, 列索引位置)
  • ? DataFrame.loc(行索引名稱或條件, 列索引名稱)
# loc
import pandas as pd
import numpy as np
data = {
   'name':['楊將軍(大潤)', '李女將(玉芳)', '馬(軍師)慶顯', '韋女將(思妍)', '徐大將(佳宇)'],
   'location':['游走', '下路', '打野', '中單', '上單'],
   'dynasty':['蜀', '蜀', '戰(zhàn)國', '漢', '蜀'],
   'year':[1999, 2000, 2020, 2050, 3030]
}
df1 = pd.DataFrame(data, columns=['name','location','dynasty','address','year'],index=['a','b','c','d','e'])
df2 = df1.set_index('dynasty')
print(df2)
print("取name和year兩列的數(shù)據(jù):\n",df2.loc[:,['name','year']])
print("取漢,戰(zhàn)國行中name,year的數(shù)據(jù):\n",df2.loc[['漢','戰(zhàn)國'],['name','year']])

4.增加數(shù)據(jù)

增加一行通過append方法傳入字典結(jié)構(gòu)數(shù)據(jù)即可,增加列時為增加的列賦值即可創(chuàng)建一個新的列,具體給值要對應,不然會報錯

#插入一行數(shù)據(jù)append
#加列并賦值
import pandas as pd
import numpy as np
data = {
	'name':['楊將軍(大潤)', '李女將(玉芳)', '馬(軍師)慶顯', '韋女將(思妍)', '徐大將(佳宇)'],
	'location':['游走', '下路', '打野', '中單', '上單'],
	'dynasty':['蜀', '蜀', '戰(zhàn)國', '漢', '蜀'],
	'year':[1999, 2000, 2020, 2050, 3030]
}
df1 = pd.DataFrame(data, columns=['name','location','dynasty','address','year'],index=['0','1','2','3','4'])

df1['C'] = 10
df1['age'] = [24,33,19,40,80]

data1 = {
    'name':'吳醫(yī)師(宗蔚)',
    'location':'打野',
    'dynasty':'唐',
    'year':1909
}
df1.append(data1,ignore_index=True)

print(df1)
print(df1.append(data1,ignore_index=True))

5.刪除行和列

刪除數(shù)據(jù)直接用drop方法,行列數(shù)據(jù)通過axis參數(shù)設(shè)置默認為0刪除行,1刪除列。

默認數(shù)據(jù)刪除不修改原數(shù)據(jù),如果在原數(shù)據(jù)上刪除加入?yún)?shù)inplace=True即可!

import numpy as np
import pandas as pd

df = pd.DataFrame(data=[['楊大潤', '男', 22], ['李玉芳', '女', 18], ['韋思妍', '女', 18],
                        ['馬慶顯', '男', 23], ['徐佳宇', '女', 18], ['吳宗蔚', '女', 21]], index=[1, 2, 3, 4, 5, 6],
                  columns=['name', 'sex', 'age'])
# 測試數(shù)據(jù)。
print(df)

h=df.drop([1,3],axis = 0,inplace = False)         #刪除index值為1和3的兩行,
print(h)


l=df.drop(['name'],axis = 1,inplace = False)   #刪除name列。
print(l)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論