❶ 在python中定義類時,與運算符「//」對應的特殊方法名為____。
在搏臘Python中定義姿銀襪類時,與運算符「//」對應的特跡激殊方法名為__floordiv__
❷ python等式的判斷
import re
import operator
def check_equation(eq):
eq = eq.replace(' ', '')
match = re.match(r'^(\d+)([\+\-\*\/])(\d+)=(\d+)$'殲灶, eq)
if not match:
raise ValueError('%s is not a valid equation.' % eq)
op_map = {
'氏脊扮+': operator.add,
'-': operator.sub,
'*': operator.mul,
'野山/': operator.floordiv
}
a = int(match.group(1))
op = op_map[match.group(2)]
b = int(match.group(3))
c = int(match.group(4))
return op(a, b) == c
if __name__ == '__main__':
eq = input('Enter an equation: ')
print(check_equation(eq))
❸ python裡面地板除法是什麼意思
// 稱為地板除,兩個整數的除法仍然是整數,它總是會捨去小數部分,返回數字序列中比真正的商小的,最接近的數字。
簡單來說就是求商。
兩個整數相除,返回整數
3 // 2
> 1
兩個數的區中一個是浮點數,返回浮點數
3 // 2.0
> 1.0
負數除以正整數是負數自己本身
-1 // 2.0
> -1
負數除以負整數是0
-1//-4
> 0
❹ 用python寫一個除法的函數
# 只考慮了除數不為0的情況
def div(x, y):
if y!=0:
return x/y
else:
print('除數不能為0')
❺ python3.5中的地板除問題
對最佳回答進行一些修改:在python3.X中利用/即可直接進行浮點運隱除法運算,即精確除法。而//的規則是:旁並廳先對被除數進蔽絕行四捨五入取整(除數不動),然後運算除法,對運算結果進行無條件截斷,只保留到整數部分,小數點後不保留。這個類似floor(),所以也叫地板除。
#加粗部分為修改部分
❻ 為什麼Python中//和math.floor運算結果會不同
先說結論:這個問題是由於cpython的地板除運算符(//)的實現不是 浮點除清啟改法+floor 來實現而是用了(被除數 - 余數)/除數 導致的。
PS:Jython下可以得到20.0,而PEP里規定了a // b應該等於round(a/b),所以似乎這是cpython實現的一個bug?
首先先分析下1 / 0.05究竟應該等於多少。答案就是旁此精確的20.0。
簡單解釋下:IEEE754浮點數規定,如果一個浮點數的值不能被精確記錄,那麼它的值會被記成與這個數距離最近的可以被IEEE浮點數表示的數。
首先,0.05在二進制下是無限循環小數,自然不能被精確記錄,因此0.05這個浮點數的實際值是不等於0.05的,實際值是約為0.05 + 2.7e-18。
之後做浮點除法,實際上做的是1 / (0.05+2.7...e-18),這個除法的結果大約是20 - 1.1e-15。這個值也不能被精確表示,恰好離這個數最近的可以表示的值就是20.0,因此即使有浮點數誤差結果也是精確的20.0。
既然1/0.05就是20.0,那麼對他做floor運算自然也是20了。
現在的問題就是為什麼1 // 0.05會變成19.0,要解決這個問題只能翻源碼看//運算符的實現。
直接把cpython/floatobject.c at · python/cpython · GitHub 中實現//運算的一段貼上來答判:
static PyObject *
float_divmod(PyObject *v, PyObject *w)
{
double vx, wx;
double div, mod, floordiv;
CONVERT_TO_DOUBLE(v, vx);
CONVERT_TO_DOUBLE(w, wx);
if (wx == 0.0) {
PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
return NULL;
}
PyFPE_START_PROTECT("divmod", return 0)
mod = fmod(vx, wx);
/* fmod is typically exact, so vx-mod is *mathematically* an
exact multiple of wx. But this is fp arithmetic, and fp
vx - mod is an approximation; the result is that div may
not be an exact integral value after the division, although
it will always be very close to one.
*/
div = (vx - mod) / wx;
if (mod) {
/* ensure the remainder has the same sign as the denominator */
if ((wx < 0) != (mod < 0)) {
mod += wx;
div -= 1.0;
}
}
else {
/* the remainder is zero, and in the presence of signed zeroes
fmod returns different results across platforms; ensure
it has the same sign as the denominator. */
mod = sign(0.0, wx);
}
/* snap quotient to nearest integral value */
if (div) {
floordiv = floor(div);
if (div - floordiv > 0.5)
floordiv += 1.0;
}
else {
/* div is zero - get the same sign as the true quotient */
floordiv = sign(0.0, vx / wx); /* zero w/ sign of vx/wx */
}
PyFPE_END_PROTECT(floordiv)
return Py_BuildValue("(dd)", floordiv, mod);
}
可以發現cpython中x // y的實現實際上是
round((x - fmod(x, y)) / y)
,其中fmod函數是求兩個浮點數相除的余數。
這樣一來就解釋的通了:在十進制下,顯然1除以0.05的余數應該是0.0。然而在IEEE浮點數環境中,0.05的實際值是約0.05 + 2.7e-18,略大於0.05,這樣一來1除以這個數的余數就成了約0.05 - 5e-17,從1中減掉這么多之後就只剩0.95了,除以0.05再round後變成19.0。
❼ 如何在dataframe的列名前統一加上u
本文主要介紹Pandas中DataFrame的常用方法。在正式介紹之前,需要先說明以下幾點:
從DataFrame中抽取出其中的一列形成的數據類型既可以是Series,也可以是DataFrame,具體如下圖。這兩種數據類型支持的方法大部分相似。但本篇主要介紹DataFrame類型支持的操作。
在這里插入圖片描述
DataFrame中的很多方法都包含參數axis,這個參數可以控制方法的操作方向:按行or按列(axis=0,默認值)。正文的示例中不再特意針對這個參數來對比方法效果。
DataFrame中的方法有很多。大部分方法顫凳從方法名稱就可以推斷出方法的作用,這類方法就不再詳細介紹了。
DataFrame中的一些方法有別名,比如notnull和notna,這里只會介紹其中一個。
DataFrame中的一些方法已經在其他博客中介紹過,這里也不會再繼續介紹。具體鏈接放在相關內容部分。
1 常用計算
這里的一般計算主要包括以下幾類。如下:
加減乘除等計算:add(加;+)、sub(減;-)、mul(乘; *)、div\truediv(除;/)\floordiv(地板除;//)、mod(求余;%)、pow(冪計算)、rsub、rfloordiv\rtruediv\rdiv、rpow、radd、rmod、rmul。不以r開頭的方法也可以直接使用對應的算術運算符來計算;
累計擾洞讓求值計算:cumsum、cummin、cummax、cumpod;
邏輯運算:eq(等於;==)、ne(不等於;!=)、le(小於等於;<=)、lt(小於;<)、ge(大於等於;>=)、gt(大於;>)、all(若全為True則為True,否則為False)、any(若有一個為True即為True);
統計函數:count、sum、max、min、mean、median、mode、std、var、prod(所有值的乘積);
其他計算:corr(相關性)、skew(偏度)、kurt(峰度);
舉例如下:
import pandas as pd
import numpy as np
data=pd.DataFrame([[11,13],[0,20],[24,45]],columns=list('AB'))
data_1=data.cumprod()
data_2=data.ge(pd.Series({'A':10,'B':15})) #判斷條件:第一列是否大於等於10,第二列是否大於等於15
data_3=data_2.all(axis=1) #如果某一行全為True,則返回True,否則返回False
data_4=data.count()
data_5=data.corr() #計算兩列的相關性
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
其結果如下:
在這里插入圖片描述
2 遍歷數據
DataFrame中與數據遍歷相關的方法主要包括:items、iteritems(與items作用相同,未來版本會刪除)、iterrows、itertuples(目前沒看出來有什麼特殊之處)。這幾個方法的主要區別如下:
除了itertuples()返回的數據類型為map之外,其餘方法返回的數據類型均為迭代器。
items和iterrows返回的迭代器中的每個元素均為tuple。
items按列返回數據,iterrow按行返回數據。
具體用法舉例如下(運算結果不展示):
data=pd.DataFrame([['A',1],['B',2]],columns=['col_1','col_2'])
for item in data.items():
print(item)
for row in data.iterrows():
print(row)
1
2
3
4
5
1
2
3
4
5
3 排序相關
3.1 rank方法
DataFrame中提供了排序方法rank(),該方法返回值對應的排序名次。其主要參數如下:
參數 作用
axis 指定排序方向
method 指定一組記錄的排序方法:『average』, 『min』, 『max』, 『first』, 『dense』
numeric_only 是否只對數值型列進行排序
na_option 指定空值處理方式:『keep』, 『top』, 『bottom』
ascending 是否升序
pct 是否以百分比的形式展示緩局排名
其用法舉例如下:
import pandas as pd
data=pd.DataFrame([['A',10],['B',29],['a',19],[None,34],['A',17]],
columns=['col_1','col_2'])
data_1=data.rank(method='max')
data_2=data.rank(numeric_only=True,pct=True)
1
2
3
4
5
1
2
3
4
5
其結果如下:
在這里插入圖片描述
下面依次對其就結果進行說明:
先來看data_1中的col_2,將data中col_2列的結果從小到大排序,那麼10排在第1位,17排在第2位,19排在第三位,依次類推。所以data_1中col_2列的值依次為:1、4、3、5、2;
再來看data_1中的col_1,首先空值不會參與排序;其次字母是按照其對應的ascii碼值進行排序的,所以A<B<a;另外,A出現兩次,所以這里A最終的輸出結果要使用method指定的方法來計算。在排序之後的數據中,A占據第1位和第2位,所以在method為max方法的前提下,A返回的結果為2。
再來看data_2。因為這里設置了numeric_only,所以col_1列並不進行排序,其次,pct為True,所以col_2列返回的是其排序對應的百分比。其百分比的計算公式為:排序值/max(排序值)。
3.2 idxmax/idxmin方法
idxmax()/idxmin()方法可以返回最大值、最小值對應的索引。具體用法舉例如下:
import pandas as pd
data=pd.DataFrame([['A',10,False],['B',29,False],['a',19,True],[None,34,True],['A',17,True]],
columns=['col_1','col_2','col_3'],
index=['A0','A1','A2','A3','A4'])
data_1=data[['col_2','col_3']].idxmax()
data_2=data[['col_2','col_3']].idxmin()
1
2
3
4
5
6
1
2
3
4
5
6
其結果如下:
在這里插入圖片描述
這里有以下幾點需要說明:
idxmax()\idxmin()方法支持的數據類型有:int,float和boolean。所以若針示例中的data直接運行data.idxmax()或data.idxmin()的話,會報錯:TypeError: rection operation 『argmax』 not allowed for this dtype。
對於boolean類型數據,True>False
若最大值有多個,則返回最大值第一次出現時對應的索引值。
3.3 nlargest/nsmallest方法
nlargest()/nsmallest()方法可以返回最大最小的k kk個值。主要包括以下三個參數:
參數 作用
n 返回的項數
columns 指定排序的一個或多個列名
keep 如何處理重復值。可選值:last、first、all
其用法舉例如下:
import pandas as pd
data=pd.DataFrame([['A',10,False],['A',10,False],['a',19,True],[None,17,True],['A',17,True]],
columns=['col_1','col_2','col_3'],
index=['A0','A1','A2','A3','A4'])
data_1=data.nsmallest(n=3,columns=['col_2'],keep='all')
data_2=data.nlargest(n=4,columns=['col_3'],keep='first')
1
2
3
4
5
6
1
2
3
4
5
6
其結果如下:
在這里插入圖片描述
這里有以下幾點需要說明:
columns參數指定的排序列可以是數值型及布爾型,但不能接收字元串類型。
keep在什麼時候才會發揮作用?從data_1的結果可以發現,當按照col_2列的值選取最小的3個項時,第3項對應的col_2值為17,而data中col_2值為17的項有兩個(索引為A3和A4),keep參數可以控制是A3還是A4返回給data_1。當keep=『first』時,A3返回給data_1,當keep='last』時,A4返回給data_1,當keep='all』時,所有都返回給data_1。
4 其他
1. add_prefix()\add_suffix()方法
這兩個方法可以給DataFrame的列名添加統一的前後綴。具體用法如下:
import pandas as pd
dt=pd.DataFrame([['A',1],['B',1]],columns=['A','B'])
dt1=dt.add_prefix('Col_') #給列名增加統一的前綴
dt2=dt.add_suffix('_Col') #給列名添加統一的後綴
1
2
3
4
1
2
3
4
dt、dt1、dt2的結果分別如下:
在這里插入圖片描述
2. align()數據對齊
Pandas執行運算時,會先按照索引進行對齊,對齊以後再進行相應的運算,沒有對齊的位置一般會用NaN進行補齊。Pandas提供了專門的方法align()對兩個DataFrame進行數據對齊。該方法中的主要參數如下:
參數 作用
other 可以是DataFrame或者Series。
join 對齊方式:『outer』(默認值), 『inner』, 『left』, 『right』
axis 對齊方向:取值為0時按索引對齊,取值為1時按列進行對齊,不設置該值時行和列同時對齊
level
fill_value 填充值,默認為np.nan
method 值的填充方式
limit 向前向後填充NaN值的數量
fill_axis
broadcast_axis
用法舉例如下:
import pandas as pd
dt1=pd.DataFrame(np.arange(8).reshape(4,2),columns=['A','B'],index=[1,2,3,4])
dt2=pd.DataFrame(np.arange(12).reshape(4,3),columns=['A','B','C'],index=[1,2,'a','b'])
left,right=dt1.align(dt2,join='inner')
left_1,right_1=dt1.align(dt2,join='outer',fill_value=100)
left_2,right_2=dt1.align(dt2,join='outer',method='backfill',limit=1)
1
2
3
4
5
6
1
2
3
4
5
6
dt1和dt2的結果如下:
在這里插入圖片描述
left、right的結果如下:當join為inner時,會在兩個方向上同時求交集(因為沒有指定axis)。
在這里插入圖片描述
left_1、right_1的結果如下:使用100填充沒有對齊的位置。
在這里插入圖片描述
left_2、right_2的結果如下:
在這里插入圖片描述
3. asfreq()
asfreq()方法可以把時間序列型的索引(即DatetimeIndex型、PeriodIndex型)轉化到特定的時間頻率。具體用法舉例如下:
import pandas as pd
idx1=pd.date_range(start='2022-07-25',end='2022-07-26',freq='D')
idx2=pd.period_range(start='2022-07-25',end='2022-07-26',freq='D')
dt1=pd.DataFrame([[1,2],[3,4]],columns=['A','B'],index=idx1)
dt2=pd.DataFrame([[1,2],[3,4]],columns=['A','B'],index=idx2)
1
2
3
4
5
1
2
3
4
5
dt1和dt2的結果如下:
在這里插入圖片描述
當對這兩個DataFrame變數進行asfreq操作後得到的結果如下:
當DataFrame的索引為DatetimeIndex類型時,新的索引是利用pd.date_range()方法利用asfreq()方法中的指定的freq重新生成的,新出現的索引對應的值會用空值進行填充。
在這里插入圖片描述
當DataFrame的索引為PeriodIndex類型時,新索引和舊索引是一對一的關系。
在這里插入圖片描述
4. asof()
asof()方法返回指定索引(包含該索引)之前最後一行在指定列不含空值的數據。 具體用法如下:
在這里插入圖片描述
使用asof()方法要注意以下幾點:
DataFrame或Series必須是已經排序的。
未指定subset是會對DataFrame的所有列進行非空判斷。
5. assign()
給DataFrame分配新列。具體如下:
在這里插入圖片描述
這里要注意assign()中匿名函數中的x為dt本身,所以這里要注意匿名函數的寫法。
相關內容
loc/iloc方法:https://blog.csdn.net/yeshang_lady/article/details/89103572
cut/qcut方法:https://blog.csdn.net/yeshang_lady/article/details/107957020
apply/applymap方法:https://blog.csdn.net/yeshang_lady/article/details/103324742
isin方法:https://blog.csdn.net/yeshang_lady/article/details/112207877
pivot_table方法:https://blog.csdn.net/yeshang_lady/article/details/103068031
groupby方法:https://blog.csdn.net/yeshang_lady/article/details/102488971
unique/nunique方法:https://blog.csdn.net/yeshang_lady/article/details/105345653
join/merge方法:https://blog.csdn.net/yeshang_lady/article/details/103363486
at_time/between_time方法:https://blog.csdn.net/yeshang_lady/article/details/121953450
文章已被收錄至官方知識檔案
Python入門技能樹結構化數據分析工具PandasPandas概覽
200379 人正在系統學習中
點擊閱讀全文
打開CSDN,閱讀體驗更佳
Python Pandas中dataframe常用操作(創建、讀取寫入、切片等)_Parzival...
對索引順序有要求的用Series添加。 注意:若使用Series初始化一定要指定index,因為它默認索引為0、1、2…,如果你的dataframe索引不是,就會全部初始化為NaN。 >>>df3['price']=pd.Series([1,2,3])>>>df3 name color num price ...
...DataFrame基本操作_GoAI的博客_python dataframe操作
Dataframe操作總結參考:https://www.cnblogs.com/bethansy/p/8323763.html 一、查看數據(查看對象的方法對於Series來說同樣適用) 1.查看DataFrame前xx行或後xx行 a=DataFrame(data); a.head(6)表示顯示前6行數據,若head()中不帶...
Dataframe的多種創建方法
Dataframe的多種創建方法 "二維數組"Dataframe:是一個表格型的數據結構,包含一組有序的列,其列的值類型可以是數值、字元串、布爾值等。 Dataframe中的數據以一個或多個二維塊存放,不是列表、字典或一維數組結構 # Dataframe是一個表格型數據結構,「帶有標簽的二維數組」 # Dataframe帶有index(行標簽)和columns(列標簽) import panda...
繼續訪問
DataFrame常用方法詳解
本文詳細講解了dataframe中常用的方法head()、tail()、info()、describe()、value_counts()、drop()、rename()、()、reset_index()
繼續訪問
python中dataframe的使用_歸去來?的博客
python中dataframe的使用 Python之DataFrame常用方法小結 【Series】 性質:一維數組對象,類似NumPy 的一維array。 除了包含一組數據還包含一組索引,所以可以把它理解為一組帶索引的數組。 obj = Series([1,2,3,4],index = [『a』,...
Python dataframe.pivot()用法解析_WALL-EC的博客_dataframe...
python pandas 庫的dataframe pivot()函數用法解析:簡而言之,我理解的pivot()的用途就是,將一個dataframe的記錄數據整合成表格(類似Excel中的數據透視表功能),而且是按照pivot(『index=xx』,』columns=xx』,』values=xx』)來整合的。...
最新發布 python大數據之dataframe常用操作
詳細講解了dataframe的常用操作,包含創建,增刪改查,算數運算,邏輯運算,常用聚合函數以及lamda函數的使用等
繼續訪問
Python Pandas中dataframe常用操作(創建、讀取寫入、切片等)
Series & Dataframe 一個感覺描述得比較好的示意圖: 在一些涉及到批量處理二維列表中數據的場景中,使用dataframe會簡便很多。 而只有一維數據的dataframe就是series啦。 感覺dataframe用的多一些,就先記錄dataframe吧。 import pandas as pd Dataframe 1. 創建Dataframe 空dataframe # 創建空dataframe >>> df = pd.DataFrame() >>&
繼續訪問
python大數據之dataframe常用操作_addict_jun的博客_python操作...
dataframe與dataframe之間 + , - , * , / 可以在兩個dataframe之間進行運算,屬於一對一的計算。 4.邏輯運算 邏輯運算符號< , > , |, & 邏輯運算類型:>, >=, <, <= , ==, != ...
Python之DataFrame基礎知識點_酒釀小圓子~的博客_python中d...
Python之DataFrame基礎知識點 華為雲開發者聯盟該內容已被華為雲開發者聯盟社區收錄,社區免費抽大獎🎉,贏華為平板、Switch等好禮! 加入社區 Python專欄收錄該內容 22 篇文章2 訂閱 訂閱專欄
DataFrame的基本方法
目錄 DataFrame中常見的方法: 基本數學操作 較為復雜功能:分組統計 pandas.DataFrame.count 功能 參數 相關補充 給出的例子 set_index相關補充 DataFrame中常見的方法: 基本數學操作 df.count() #非空元素計算 df.min() #最小值 df.max() #最大值 df.idxmin() #最小值的位置,類似於R中的which.min函數 df.idxmax() #最大值的位置,類似於R中的which....
繼續訪問
pandas計算含缺失值中列平均值_Pandas之DataFrame基本操作
pandas中Series和DataFrame基本操作。設有DataFrame結果的數據a如下所示:a bcone4 1 1two6 2 0three6 1 6一、查看數據(查看對象的方法對於Series來說同樣適用)1.查看DataFrame前xx行或後xx行a=DataFrame(data);a.head(6)表示顯示前6行數據,若head()中不帶參數則會顯示全部數據。a.tail(6)表示...
繼續訪問
Python數據分析系列5---DataFrame數據操作_webwow的博客_data...
2、Series和DataFrame中數據的基本手段 2.1 重新索引 ①pandas對象的方法reindex:其作用是創建一個新對象,它的數據符合新的索引排序。 obj2 = obj.reindex(['a','b','c','d','e']) ...
Python-Pandas之DataFrame用法總結_ckSpark的博客_python pa...
Python中Merge()函數用法 #Append:將數據按rows拼接到數據框中df=pd.DataFrame(np.random.randn(8,4),columns=['A','B','C','D'],index=range(1,9))>>>A B C D10.048111-0.9737450.1508541.8396962-0.718782-0.8584830.82408...
python之DataFrame篇
DataFrame是python中Pandas庫中的一種數據結構,類似excel,是一種二維表。DataFrame的單元格可以存放數值,字元串等類型數據。python在處理excel數據時通常都會用DataFrame來讀。 1.讀數據 %%time import pandas as pd df = pd.read_excel('2019-2.xlsx',sheet_name=None) %%ti......
繼續訪問
python學習--DataFrame
目錄 一、DataFrame對象的創建 1、根據列表創建: 情況1:由二維列表 情況2:由元組tuple組成的列表 情況3:由字典dict組成的列表 情況4:由數組array組成的列表 情況5:由序列series組成的列表 2、根據字典創建: 情況1:由元組tuple組成的字典 情況2:由列表list組成的字典 情況3:由字典dict組成的字典 情況4:由數組array組成的字典 情況5:由序列series組成的字典 情況6:由復合式的字典 3、根據二維數組ndarray創
繼續訪問
Python之DataFrame基礎知識點
字典嵌套字典 # 字典嵌套字典 stu_dict = { 'student_1' : {'name': 'Jack', 'gender': 'M', 'score': 80}, 'student_2' : {'name': 'Mary', 'gender': 'F', 'score': 85} } {'student_1': {'name': 'Jack', 'gender': 'M', 'score': 80}, 'student_2': {'name': 'Mary', 'gender
繼續訪問
pandas的DataFrame的[]和[[]]的區別
對於一個DataFrame類型的數據,可以用[]和[[]]來取其某一列或某幾列(僅限[[]]才能取某幾列)。 從[]只能取某一列就能看出,這個取出來的是Series,而[[]]取出來的是DataFrame類型的。
繼續訪問
Pandas中DataFrame的屬性、方法、常用操作以及使用示例
1. DataFrame 對象創建2. DataFrame 的屬性3. DataFrame 的方法4. DataFrame 的常用操作2.1 axes ---- 返回行/列標簽列表 2.2 columns ---- 返回列標簽列表 2.3 index ---- 返回行標簽列表 2.4 dtypes ---- 返回數據類型 2.5 empty ---- 返回 DataFrame 對象是否為空 2.6 ndim ---- 返回 DateFrame 對象的維數 2.7 size ---- 返回DateFrame
繼續訪問
熱門推薦 DataFrame的apply()、applymap()、map()方法
對DataFrame對象中的某些行或列,或者對DataFrame對象中的所有元素進行某種運算或操作,我們無需利用低效笨拙的循環,DataFrame給我們分別提供了相應的直接而簡單的方法,apply()和applymap()。其中apply()方法是針對某些行或列進行操作的,而applymap()方法則是針對所有元素進行操作的。 1 map()方法 The map method ...
繼續訪問
python:DataFrame的使用詳解,數據的獲取
在學完series後,我緊接著把DataFrame的創建也過了一遍,今天就開始整理之路了。 DataFrame里的數據是按照行和列來進行排列,現在我們一起來看下如何對DataFrame的數據按照行或者列進行選擇、遍歷以及修改。獲取之前我們要清楚DataFrame中的數據情況, 首先數據的維度是一維還是二維的我們可以使用ndim查看,數據的行數和列數shape,以及行列的索引值index、columns。 import pandas as pd df_dict = { 'name':['ZhangSan'
繼續訪問
Dataframe的用法
使用Panda庫讀取文件時,經常會返回一個Dataframe結構的數據,本文主要記錄一下如果操作該數據結構。 讀取Dataframe filename = 『XXX』 data = pd.read_csv(filename, sep=』,』) data = np.array(data) 這個函數(read_csv)有幾個參數比較重要,一個是encoding,可以選擇utf-8,避免中文亂碼;另一個是index_col,用於行索引的列標號或者列名;再是header,用於列名的行號,pd.read_csv函數
繼續訪問
python中pandas.DataFrame的簡單操作方法(創建、索引、增添與刪除)
這篇文章主要介紹了python中pandas.DataFrame的簡單操作方法,其中包括創建、索引、增添與刪除等的相關資料,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。 前言 最近在網上搜了許多關於pandas.DataFrame的操作說明,都是一些基礎的操作,但是這些操作組合起來還是比較費時間去正確操作DataFrame,花了我挺長時間去調整BUG的。我在這里做一些總結,方便你...
繼續訪問
【python】Pandas中DataFrame基本函數整理(全)
構造函數 DataFrame([data, index, columns, dtype, ]) #構造數據框 屬性和數據 DataFrame.axes #index: 行標簽;columns: 列標簽 DataFrame.as_matrix([columns]) #轉換為矩陣 DataFrame.dtypes #返回數據的類型 DataFrame.f
繼續訪問
『Python核心技術與實戰』pandas.DataFrame()函數介紹
pandas.DataFrame()函數介紹! 文章目錄一. 創建DataFrame1.1. numpy創建1.2. 直接創建1.3. 字典創建二. DataFrame屬性2.1. 查看列的數據類型2.2. 查看DataFrame的頭尾2.3. 查看行名與列名2.4. 查看數據值.values2.5. 查看行列數2.6. 切片和索引三. DataFrame操作3.1. 轉置3.2. 描述性統計3.3. 運算之求和、數乘及平方3.4. 新增列3.5. 兩個DataFrame合並3.6. ==去重(重復行)=
繼續訪問
【Pandas】Dataframe基本操作
轉載:https://blog.csdn.net/yizhuanlu9607/article/details/91857490 簡介 pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYSIS】中對pandas的方方面面都有了一個權威簡明的入門級的介紹,但在實際使用過程中,我發現書中的內容還只是冰山一角。談到pandas數據的行更新、表合並等操作,一般用到的方法...
繼續訪問
Python-Pandas之DataFrame用法總結
DataFrame:類似於表的數據結構 本文對Pandas包中二維(多維)數據結構DataFrame的特點和用法進行了總結歸納。 可以參考:pandas用法速覽 3.1 增加數據 3.1.1 創建數據框Object Creation import pandas as pd import numpy as np #通過Numpy array來創建數據框 dates=pd.date_range('...
繼續訪問
python dataframe用法
python
pandas。
❽ 如何在Python中獲取完整的異顏桓
我們可以很容易的通過Python解釋器獲取幫助。如果想知道一個對象(object)更多的信息,那麼可以調用help(object)!另外還有一些有用的方法,dir(object)會顯示該對象的大部分相關屬性名,還有object._doc_會顯示其相對應的文檔字元串。下面對其進行逐一介紹。
1、 help()
help函數是Python的一個內置函數。
函數原型:help([object])。
可以幫助我們了解該對象的更多信息。
Ifno argument is given, the interactive help system starts on the interpreter console.
>>> help()
Welcome to Python 2.7! This is the online help utility.
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at .
Enter the name of any mole, keyword, or topic to get help on writing
Python programs and using Python moles. To quit this help utility andreturn to the interpreter, just type "quit".
To get a list of available moles, keywords, or topics, type "moles","keywords", or "topics". Each mole also comes with a one-line summary
of what it does; to list the moles whose summaries contain a given word
such as "spam", type "moles spam".
help> int # 由於篇幅問題,此處只顯示部分內容,下同Help on class int in mole __builtin__:class int(object)
| int(x=0) -> int or long
| int(x, base=10) -> int or long
|
.....help>
Ifthe argument is a string, then the string is looked up as the name of amole,function,class,method,keyword, ordocumentation topic, and a help page is printed on the console. If the argument is any other kind of object, a help page on the object is generated.
>>> help(abs) # 查看abs函數Help on built-in function abs in mole __builtin__:
abs(...)
abs(number) -> number
Return the absolute value of the argument.>>> help(math) # 查看math模塊,此處只顯示部分內容Help on built-in mole math:
NAME
math
FILE
(built-in)
DESCRIPTION
This mole is always available. It provides access to the
mathematical functions defined by the C standard.
FUNCTIONS
acos(...)
acos(x)
Return the arc cosine (measured in radians) of x.
.....>>> 293031
2、dir()
dir函數是Python的一個內置函數。
函數原型:dir([object])
可以幫助我們獲取該對象的大部分相關屬性。
Without arguments, return the list of names in the current local scope.
>>> dir() # 沒有參數['__builtins__', '__doc__', '__name__', '__package__']>>> >>> import math # 引入一個包和一個變數,再次dir()>>> a=3>>> >>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'a', 'math']>>> 12345678910
With an argument, attempt to return a list of valid attributes for that object.
>>> import math>>> dir(math) # math模塊作為參數['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'sign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']>>> 12345
The default dir() mechanism behaves differently with different types of objects, as it attempts to proce the most relevant, rather than complete, information:
• If the object is a mole object, the list contains the names of the mole』s attributes.
>>> import math>>> dir(math) # math模塊作為參數['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'sign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']>>> 12345
• If the object is a type or class object, the list contains the names of its attributes, and recursively of the attributes of its bases.
>>> dir(float) # 類型['__abs__', '__add__', '__class__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__int__', '__le__', '__long__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__rdivmod__', '__rece__', '__rece_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__setformat__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']>>> dir(3.4)
['__abs__', '__add__', '__class__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__int__', '__le__', '__long__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__rdivmod__', '__rece__', '__rece_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__setformat__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']>>> >>> class A:
x=3
y=4>>> class B(A):
z=5>>> dir(B) # 類['__doc__', '__mole__', 'x', 'y', 'z']>>> 123456789101112131415161718
• Otherwise, the list contains the object』s attributes』 names, the names of its class』s attributes, and recursively of the attributes of its class』s base classes.
3、_doc_
在Python中有一個奇妙的特性,文檔字元串,又稱為DocStrings。
用它可以為我們的模塊、類、函數等添加說明性的文字,使程序易讀易懂,更重要的是可以通過Python自帶的標准方法將這些描述性文字信息輸出。
上面提到的自帶的標准方法就是_doc_。前後各兩個下劃線。
註:當不是函數、方法、模塊等調用doc時,而是具體對象調用時,會顯示此對象從屬的類型的構造函數的文檔字元串。
>>> import math>>> math.__doc__ # 模塊'This mole is always available. It provides access to the
mathematical functions defined by the C standard.'>>> abs.__doc__ # 內置函數'abs(number) -> number
Return the absolute value of the argument.'>>> def addxy(x,y):
'''the sum of x and y'''
return x+y>>> addxy.__doc__ # 自定義函數'the sum of x and y'>>> a=[1,2,4]>>> a.count.__doc__ # 方法'L.count(value) -> integer -- return number of occurrences of value'>>> b=3>>> b.__doc__ # 具體的對象"int(x=0) -> int or long
int(x, base=10) -> int or long
Convert a number or string to an integer, or return 0 if no arguments
are given. If x is floating point, the conversion truncates towards zero.
If x is outside the integer range, the function returns a long instead.
If x is not a number or if base is given, then x must be a string or
Unicode object representing an integer literal in the given base. The
literal can be preceded by '+' or '-' and be surrounded by whitespace.
The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to
interpret the base from the string as an integer literal.
>>> int('0b100', base=0)
4">>> 12345678910111213141516171819
其實我們可以通過一定的手段來查看這些文檔字元串,比如使用Pycharm,在對應的模塊、函數、方法等上滑鼠「右擊」->Go to->Declaration。例如:查看內置函數abs的文檔字元串
參考文獻:
1、Python幫助文檔
❾ python取模是什麼意思
Python中的旁祥取模運算符用於求余數。它通常寫作%,並用於計算兩個整數相除時的余數。例如,如果我們將9除以4,得到2,余數為1,因此9 % 4等於1。
>>> 9 % 4
1
在Python中,取模運算符可用於任何整數,包括正整數、負整數和0。例如,以下代碼演示了使用取模運算符來計算幾個負整數的余數:
>>>友燃 -9 % 4
3
>>> -8 % 3
2
>>>好啟虛 -7 % 2
1