老師您好: 我有問題想請教您 我目前的專題需要讀取.txt在寫入.xlsx 這是我使用的程式 import pandas as pd df = pd.read_txt('input.txt') # can replace with df = pd.read_table('input.txt') for '\t' df.to_excel('output.xlsx', 'Sheet1') 這是結果 PS D:\python -tarring> python 2.py Traceback (most recent call last): File "2.py", line 2, in df = pd.read_.txt('input.txt') # can replace with df = pd.read_table('input.txt') for '\t' File "C:\Users\henrr\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\__init__.py", line 214, in __getattr__ raise AttributeError("module 'pandas' has no attribute '{}'".format(name)) AttributeError: module 'pandas' has no attribute 'read_' 想請問是我沒放到同個資料夾還是有其他問題 感謝彭彭老師
彭彭老師您好,想問為何換行不會往左對齊? data=pd.Series([5,4,-2,3,7],index=["a","b","c","d","e"]) print("最大的三個數 ",data.nlargest(3)) 會顯示:(e前面還有一個空白字元) 最大的三個數 e 7 a 5 b 4 dtype: int64
Python最新的版本中
#要根據順序取值的話,需要用語法 data.iloc[順序]
import pandas as pd
data=pd.Series(資料列表)
print(data.iloc[1]) #得到第二個順序的值
感謝更新資訊 :)
感謝彭彭老師!
========================
# pandas 資料分析 - Series
# Series : 單維度的資料 , 就像是一個列表、或是試算表中直向的欄位資料
# 建立 Series
# 載入 Pandas 模組
# import pandas as pd
# 以列表資料為底,建立 Series
# pd.Series(資料列表)
# 資料索引
# 資料的獨立編號 : 就像試算表中最左邊的編號
# 內建索引
# 載入 Pandas 模組
# import pandas as pd
# 以列表資料為底,建立 Series
# pd.Series(資料列表)
# 自訂索引
# 載入 Pandas 模組
# import pandas as pd
# 以列表資料為底,建立 Series
# pd.Series(資料列表,index=索引列表)
# 觀察資料
# 資料型態
# import pandas as pd
# data=pd.Series(資料列表)
# 印出 dtype 屬性
# print(data.dtype)
# 資料數量
# import pandas as pd
# data=pd.Series(資料列表)
# 印出 size 屬性
# print(data.size)
# 資料數量
# import pandas as pd
# data=pd.Series(資料列表)
# 印出 index 屬性
# print(data.index)
# 取得資料
# 根據順序取值
# import pandas as pd
# data=pd.Series(資料列表)
# 取得資料 data[順序]
# print(data[1])
# 根據索引取值
# import pandas as pd
# data=pd.Series(資料列表)
# 取得資料 data[索引]
# print(data[索引]) # 這裡的索引有時候是01234,有時候是ABCD端看自訂索引時怎麼定的
# 數字運算
# 數學、統計相關
# import pandas as pd
# data=pd.Series([3,10,20,5,-12])
# 各種數學、統計運算
# print(data.sum(),data.max(),data.prod()) # prod 所有元素的成績
# print(data.mean(),data.median(),data.std())
# print(data.nlargest(3),data.nsmallest(2)) # 取前 3 大的數字 # 取最小的 2 個數字
# 字串運算
# 字串操作相關
# import pandas as pd
# data=pd.Series(["您好","Python","Pandas"])
# 各種字串操作,都定義在 str 底下
# print(data.str.lower(),data.str.upper(),data.str.len()) # lower : 把所有字串變成小寫 # upper : 把所有字串變成大寫 # len : 取得每一個字串的長度
# print(data.str.cat(sep=","),data.str.contains("P")) # cat : 把所有字串串在一起 (sep="," # 中間用逗號串起來) contains("P") 判斷每一個字串是否包含大寫的P
# print(data.str.replace("您好","Hello")) # 把 "您好" 取代成 "Hello"
#================================================
# 載入 pandas 模組
import pandas as pd
# 資料索引
data=pd.Series([5,4,-2,3,7],index=["a","b","c","d","e"]) # 要注意 : 要建立自己的索引,索引數量要和資料數量一樣
print(data)
print("================")
# 觀察資料
print("資料型態",data.dtype) # int : integer 整數
print("資料數量",data.size)
print("資料索引",data.index)
print("================")
# 取得資料 : 根據順序、根據索引
print(data[2],data[0])
print(data["e"],data["d"])
print("================")
# 數字運算 : 基本、統計、順序
print("最大值",data.max())
print("總和",data.sum())
print("標準差",data.std())
print("中位數",data.median())
print("最大的三個數",data.nlargest(3))
print("最小的兩個數",data.nsmallest(2))
print("================")
# 字串運算 : 基本、串接、搜尋、取代
data=pd.Series(["您好","Python","Pandas"])
print("全部變小寫",data.str.lower()) # 中文不受影響
print("每個字串的長度",data.str.len())
print(data.str.cat(sep=","))
print(data.str.cat(sep="-")) # 把字串串起來,可以自訂串接的符號
print(data.str.contains("P"))
print(data.str.contains("好")) # 判斷每個字串是否包含特定的字元
print(data.str.replace("您好","Hello"))
不客氣 :)
老師好 看到訂閱人數每天增加 替老師感到開心 我幾乎每天都會看去練習 後來發現老師的課程會注重在於操作的邏輯這件事情上 跟其他的線上課程相比目的很單純 但也很有效 了解操作資料的邏輯後再去理解背後的意思真的輕鬆很多 很支持老師繼續推出相關課程
謝謝你詳細的回饋和心得,對我了解自己和學生很有幫助 :)))))
我會繼續加油,持續推出內容的 ~~~
想有機器學習、深度學習的影片,雖然剛學完在複習,但線上影片看來看去還是彭彭老師的最對味!
哈哈哈,謝謝哪,我會盡量再多多和大家一起努力 :)
機器學習我也不是特別深入,只能說若有能力了,一定會來和大家分享 ~~~
終於全部都看完了!!!!老師的課讓我充滿信心啊!發現原來我也是可以寫得出程式的!!好感動!
哈哈哈,太好了 :)
進步到26集啦,感謝老師
加油!
很喜歡聽彭彭老師的課程,覺得對學習很有幫助,也講解得很清楚,很期待老師的更新,很支持你,加油! 期待你的更新:)
謝謝你的回饋,很高興對你有幫助,會繼續更新的 :)
謝謝老師教導~感恩感恩! 目前已經全部看完 也全部動手訓練完成 覺得頗有成就 謝謝老師~期待下一集
謝謝你的回饋,很高興對你有幫助 :)
全都看完了 坐等更新
感謝老師的教學
好的,謝謝你的回饋,慢慢地都會繼續更新的 :)
python 的pandas真的好用,感謝老師
我也是這樣覺得 :)))
等待老師發片的期間,都在學老師的另一個單元:網頁前端教學~感謝老師持續更新
話說我已經很習慣用1.5倍的速度聽老師說話了@.@
哈哈哈,好哦,網頁前端也是蠻有趣的主題壓 :)
@@cwpeng-course hello 可以幫我解這題嗎 1.請設計一個程式,如果輸入是負值則將它改成正值輸出,如果輸入是正值則將它改成負值輸出,如果輸入非數字則列出輸入錯誤。這個我輸入不是數字就跑出invalid literal for int() with base 10:
終於看完所有課程了..講的真的很清楚..繼續跑回去看HTML的課程
希望有機會能介紹 繼承、建構子、多型、封裝、覆載、例外處理的課程 因為以前學的時候所提供的範例,都讓我無法想像實際應用是怎麼用的..@@
或是有機會能介紹python & selenium相關課程
謝謝彭彭老師
謝謝你的回饋和建議,我會參考看看,規劃到以後的課程中哦 :)
# ---------------------------------------
# CH24.Pandats資料分析 - Series單維度資料
# ---------------------------------------
*Series*
《單維度的資料》就像是一個列表、或是試算表中直向的欄位資料
《建立Series》
import pandas as pd # 載入Pandas模組
pd.Series(列表) # 以列表資料為底,建立Series
*資料索引index*
《資料的獨立編號》就像試算表中最左邊的編號
《內建索引》
import pandas as pd # 載入Pandas模組
pd.Series(資料列表) # 以列表資料為底,建立Series
《自訂索引》
import pandas as pd # 載入Pandas模組
pd.Series(資料列表,index=索引列表) # 以列表資料為底,建立Series
*觀察資料*
《資料型態》
import pandas as import pd
data = pd.Series(資料列表)
print(data.dtype) # 印出dtype屬性
《資料數量》
import pandas as pd
data = pd.Series(資料列表)
print(data.size) # 印出size屬性
《資料索引》
import pandas as pd
data = pd.Series(資料列表)
print(data.index) # 印出index屬性
*取得資料*
《依據順序取值》
import pandas as pd
data = pd.Series(資料列表)
print(data[1]) # 取得資料data[順序]
《根據索引取值》
import pandas as pd
data = pd.Series(資料列表)
print(data[索引index]) # 取得資料data[索引index]
*數字運算*
《數學、統計相關》
import pandas as pd
data = pd.Series(3,10,20,5,-12))
# 各種數學、統計運算
print(data.sum(),data.max(),data.prod())
print(data.mean(),data.median(),data.std())
print(data.nlargest(3),data.nsmallest(2))
# nlargest(3) => 取前三大數字
# nsmallest(2) => 取最小的兩個數字
*字串運算*
《字串操作相關》
import pandas as pd
data = pd.Series(["您好","Python","Pandas"])
# 各種字串操作,都定義在str底下
print(data.str.lower(),data.str.upper(),data.str.len())
print(data.str.cat(sep=","),data.str.contains("P"))
print(data.str.replace("您好","Hello"))
# data.str.cat(sep=",") => 把每個字串都用,串接起來
# data.str.replace("您好","Hello") => Hello取代您好
# -------------
# 載入pandas模組
import pandas as pd
# 資料索引
data = pd.Series([5,4,-2,3,7], index=["a","b","c","d","e"])
print(data)
# >>> a 5
# >>> b 4
# >>> c -2
# >>> d 3
# >>> e 7
# >>> dtype: int64
# 觀察資料
print("資料型態", data.dtype)
print("資料數量", data.size)
print("資料索引", data.index)
# >>> 資料型態 int64
# >>> 資料數量 5
# >>> 資料索引 Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
data = pd.Series([5,4,-2,3,7], index=["a","b","c","d","e"])
# 取得資料:根據順序、根據索引index
print(data[2],data[0])
print(data["e"],data["d"])
# >>> -2 5
# >>> 7 3
# 數字運算:基本、統計、順序
print("總和",data.sum()) # >>> 總和 17
print("最大值",data.max()) # >>> 最大值 7
print("標準差",data.std()) # >>> 標準差 3.361547262794322
print("中位數",data.median()) # >>> 中位數 4.0
print("最大的三個數",data.nlargest(3))
# >>> 最大的三個數 e 7
# >>> a 5
# >>> b 4
# >>> dtype: int64
print("累積連乘",data.prod())
print("平均值",data.mean())
# >>> -840
# >>> 3.4
print("最小的兩個數",data.nsmallest(2))
# >>> 最小的三個數 c -2
# >>> d 3
# >>> b 4
# >>> dtype: int64
# 字串運算:基本、串接、搜尋、取代
import pandas as pd
data = pd.Series(["您好","Python","Pandas"])
print(data.str.lower()) # 全部變小寫
# >>> 0 您好
# >>> 1 python
# >>> 2 pandas
# >>> dtype: object
print(data.str.upper()) # 全部變大寫
# >>> 0 您好
# >>> 1 PYTHON
# >>> 2 PANDAS
# >>> dtype: object
print(data.str.len()) # 算出每個字串的長度
# >>> 0 2
# >>> 1 6
# >>> 2 6
# >>> dtype: int64
print(data.str.cat(sep="-")) # 把字串串起來,可以自訂串接的符號
# >>> 您好-Python-Pandas
print(data.str.contains("P")) # 判斷每個字串是否包含特定的字元
# >>> 0 False
# >>> 1 True
# >>> 2 True
# >>> dtype: bool
print(data.str.replace("您好","哩厚")) # 後面的字串取代前方的
# >>> 0 哩厚
# >>> 1 Python
# >>> 2 Pandas
# >>> dtype: object
:)
最近要比大數據來看一下,看來影片真的舊了,3:12 現在是dtypes,要s
(致跟我一樣數年後來看的人)
感謝更新 :)
感謝教學 非常詳細!
謝謝你的回饋 :)
以前第一次就跳研究pandas模組,導致一直搞錯,謝謝分享
確實蠻需要把基礎都打好,比較能清楚的知道每個動作的意義 :)
多谢彭彭老师的视频,期待老师发更多的关于Pandas的应用视频,另外老师有兴趣讲解xlwings吗?
不客气哦,Pandas 应该将会再有一些,xlwings 暂时没有计画~~~
謝謝彭彭老師的教學
想請問彭彭老師可以出關於python畫圖的教學嗎?
如matplotlib.pyplot 的函數應用
感謝~
謝謝你的建議,我會考慮看看的 :)
這些功能是用多維字典和class實現的嗎?
肯定是需要的,但還有更多其他的細節 ~
謝謝彭彭老師
不客氣優 ~
彭彭老師您好~
想請教您在印出字串長度時,為何第一個字串"您好"印出來會是6呢?
data=pd.Series(["您好", "Python" , "Pandas"])
print(data.str.len())
0 6
1 6
2 6
dtype: in64
如果印出 6 的話可能是 Python 版本的問題,Mac 電腦執行時建議使用:python3 檔案名稱
13:43請問建立索引的部分,假如說我有1000筆資料,有什麼方法可以讓他自動建立1000個索引呢?
寫一個迴圈去巡迴資料,同時不斷的把遞增的編號加入一個索引列表中,最後再設定到 Series 裡頭。
@@cwpeng-course 瞭解 感謝老師🙏🏿
請問會有SpeechRecognition 的使用教學嗎?
目前沒有規劃,不過謝謝你的建議,我會考慮看看 :)
不知道有沒有機會聽您講python socket呢? 沒有您的影片讓我學的很痛苦
好哦,謝謝你的建議,我會考慮看看 :)
彭彭老師可以教教我們python anaconda 應用嗎
可能短期內都不會考慮 Anaconda 哦,不好意思 ~
看不太懂 print(data.str.len())
data應該是一個list物件,為甚麼可以調用字串的方法呢?
因為在 data(或者說 Pandas.Series)的物件裡面有定義 str 的函式
感謝 @櫻太郎 的說明,很清楚 :)
data 是 Pandas.Series 物件,不是 List 物件哦。
彭彭老師
我打import pandas 的時候 顯示No module names "pandas"怎麼辦
應該去哪裡下載
要先使用 pip 指令安裝 pandas 套件哦 ~
覺得很有用 謝謝老師
不會呦,謝謝你的回饋 :)
老師您好:
我有問題想請教您 我目前的專題需要讀取.txt在寫入.xlsx
這是我使用的程式
import pandas as pd
df = pd.read_txt('input.txt') # can replace with df = pd.read_table('input.txt') for '\t'
df.to_excel('output.xlsx', 'Sheet1')
這是結果
PS D:\python -tarring> python 2.py
Traceback (most recent call last):
File "2.py", line 2, in
df = pd.read_.txt('input.txt') # can replace with df = pd.read_table('input.txt') for '\t'
File "C:\Users\henrr\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\__init__.py", line 214, in __getattr__
raise AttributeError("module 'pandas' has no attribute '{}'".format(name))
AttributeError: module 'pandas' has no attribute 'read_'
想請問是我沒放到同個資料夾還是有其他問題
感謝彭彭老師
pandas 應該是沒有支援 read_txt() 這個方法哦 ~~~~
想請教老師,在判斷完字串是否包含特定字元後,如何取得布林值是true對應的值?
後面的影片有篩選資料的教學,你可以往後多看幾部,或許就有答案了哦 ~
彭彭老師有天可以教我們大家 Docker 嗎?家裡窮想要學習, 感恩
謝謝你的建議,我會考慮看看哦 :)
@@cwpeng-course 感謝:)
想问问彭老师那些 写着 Python Pandas, Python flask 等等的词汇意味着什么?抱歉我是空降过来的,因为本人只想专注于利用python 做资料分析,如果我不看前面的 python module, python flask 直接空降看资料分析的部分 会有影响吗?
Pandas 和 Flask 都是 Python 的第三方套件,用来替 Python 这个程式语言扩充更多功能。建议还是要把基础的都学习过之后再来学习这些内容,直接跳过可能不会有太好的效果。
30;03 replace([0],['哈囉'])
想請問不能這樣寫是因為replace的語法是括號內不需要再用中括號嗎? 之前字典替換好像都是用 [xxx] = [yyyy] 表示
replace 的兩個參數必須是字串,所以外面都要用雙引號或單引號包起來,裡面的部份則是所謂的正規表達式。
彭彭老師你好 我有在觀看您 HTML的影片
但比較久遠了怕您沒看到留言,故而來這留言
想自己做一個標籤功能筆記
001
一號標題
如果要直接呈現而不是以HTML方式呈現該怎麼做到呢~
使用跳脫字元取代 < 和 >,如下:
想问一下是如何在那么多资料一次过加上#号
先選取你想加上#的所有行數,接著按Ctrl + / 就可以把選擇的行數全部註解掉,反之亦然,如果想一次拿掉多行註解,依照同樣的操作便可以一次拿掉
感謝回應 :)
彭彭老師您好,想問為何換行不會往左對齊?
data=pd.Series([5,4,-2,3,7],index=["a","b","c","d","e"])
print("最大的三個數
",data.nlargest(3))
會顯示:(e前面還有一個空白字元)
最大的三個數
e 7
a 5
b 4
dtype: int64
這其實只是顯示的問題,不影響觀念和資料的處理狀況。倒是不用特別在意。
例如使用 print("最大的三個數", data.nlargest(3), end="
") 這樣可能就會好一些。
請問老師後續會有圖形化介面的課嗎?
希望老師可以多開一些付費Python進階課程我很願意付費參加~
我會考慮看看的,謝謝你的建議 :)
請問一下在28:00, 如果我想測試兩個字元是否存在 (and / or), 應該怎樣做? (and / or operators 好像沒有用) 謝謝
可以試試看:
print(data.str.contains("P") | data.str.contains("您")) # or
print(data.str.contains("P") & data.str.contains("a")) # and
@@cwpeng-course 謝謝指教!
老師您好,
呼叫函式的時候,有些函式後面不需加小括號(如data.index),有些則需要加小括號(如data.max()),請問是否需要對列表資料做運算的函式才要加,單純讀取資料的則不需要加呢?謝謝老師!
不需要加小括號的我們叫做屬性,裡面存放的是單純的資料,所以我們寫 data.index,概念上是直接取得 index 屬性中的資料。
有加小括號的我們叫做方法 ( 或函式 ),概念上是背後會有一段程式在運作,然後取得回傳值,這個就會加小括號做函式呼叫。
就是看那個東西是屬性還是函式,你後面的那個概擴性理解也 OK。
@@cwpeng-course 謝謝老師的說明!看起來跟前面的class attributes課程有點關聯,之前聽的時候覺得有點抽象又暫時用不到我就跳過了XDD 要回頭來聽了哈
@@flowerhahaha7192 我覺得碰到實際需求再回去重新確認概念是蠻好的方式 :)
感謝彭彭老師 : D
不會呦 :)
多谢彭彭老师的视频,请问下一个关于Pandas的视频大约什么时候出?我还不能用好Pandas的话就要被炒鱿鱼了 哈哈
不会呦 :)
可能至少要再一个月吧,不好意思我这边平常还是有在上班,没办法真的非常迅速的出 〜
請問在import pandas as pd的時候,fails to pass a sanity check due to a bug in the windows runtime.也嘗試過移除後再安裝,但是看起來路徑他還是會抓錯,想請問可以怎麼解決,謝謝
看起來只是版本的問題,試著更新 Python 的版本,或是更新 Pandas 的版本,應該就可以解決 ~
@@cwpeng-course 謝謝回覆,我有試過更新版本,甚至怕是不是多版本造成錯誤,把其他版本移除後也不行
@@kpocket726 我看到一個說法是可以重新安裝 NumPy 到特定的版本試試看:
pip uninstall numpy
pip install numpy==1.19.3
@@cwpeng-course 有,這個方法之前也有搜尋到,因為他說Numpy有對應的python,所以那時候有嘗試安裝不同版本的Numpy,也許環境已經被我弄亂...,謝謝老師回覆
老師您好,這裡介紹的語句感覺大多數和Excel中的公式以及部分工具差不多呀。
我想問的是,有沒有Python特有的一些功能?
Excel 是一個很強的工具,能用自己的程式做到一樣的事情其實也不錯 XD
這只是基礎的部份,我們的教學可能要慢慢前進,才會提到更多可能 Excel 不方便完成的事情 ~
學到現在,好想問老師怎麼不開個實體課程?QQ
其實有哦,白天和晚上都有在帶學生,主要都是 Web 相關的。
只是時間很滿了,沒有辦法再開 Python 惹 @@a
super helpful, thanks!
good to see this :)
数据清除 这些相关的操作也应该教下的
感谢建议 ~
加油
謝謝 :)
PS C:\Users\afran\.vscode\python-traning> python pandas-series1.py
File "pandas-series1.py", line 1
import pandas as import pdb; pdb.set_trace()
^
SyntaxError: invalid syntax
PS C:\Users\afran\.vscode\python-traning> python pandas-series1.py
Traceback (most recent call last):
File "pandas-series1.py", line 1, in
import pandas as pd
ModuleNotFoundError: No module named 'pandas'
PS C:\Users\afran\.vscode\python-traning>
import pandas as pd
data=pd.Series([5, 4, -2, 3, 7])
print(data)
彭彭老師 :12:26 愚生為何會出現此畫面 請老師釋疑
@stanley30907 Thanks a lot!
需要先安装Pandas,可以参照老师上一个视频
@@neutralname404 了解!! 多謝了 感恩!
感謝 @holyattack 和 @stanley30907 的回應 :)
@@cwpeng-course 感謝彭彭老師 @holyattack 和 @stanley30907 的回應 :)
太感激您們的熱心和無私!!!!!!
很棒!!
1.請設計一個程式,如果輸入是負值則將它改成正值輸出,如果輸入是正值則將它改成負值輸出,如果輸入非數字則列出輸入錯誤。這個我輸入不是數字就不會了
你可以試著搜尋看看 python isdigit 關鍵字,或許會有幫助。
@@cwpeng-course 我以輸入負號 會輸出False
第一個留言~~
哈哈哈哈哈,好哦 :)
彭彭老師您好,想請問print(data.str.replace("", "")),如果我希望一次replace 兩組data(假設"您好"跟"python")應該要怎麼操作呢? 試了{}跟;都沒有成功>
比較簡單的想法就是做兩次串起來,如下:print(data.str.replace("您好", "Hello").str.replace("python", "測試"))
@@cwpeng-course 讚