本文目錄一覽:
- 1、Python中的pandas如何讀取excel中指定單元格的值?
- 2、python如何讀取csv某列XX行數據保存為列表?
- 3、python panda怎麼提取列數據
- 4、Python Pandas 依據標籤或者位置選取特定行列 loc和iloc兩種方式
- 5、怎樣用python,讀取excel中的一列數據
- 6、python如何獲取指定列表名和其中的值?
Python中的pandas如何讀取excel中指定單元格的值?
pandas 讀取指定單元格 第2行,第3列
import pandas as pd
df = pd.read_excel(‘測試.xlsx’)
cell = df.iat[0, 2]
[0, 2] 表示單元格的行列 pandas 默認跳過表頭從第二行開始 第三列是2 (012)
python如何讀取csv某列XX行數據保存為列表?
list1 = df[[df.columns[2],df.columns[0]]]
list2 = df[[df.columns[2],df.columns[1]]]
python panda怎麼提取列數據
創建數據
通過Python的zip構造出一元組組成的列表作為DataFrame的輸入數據rec。
In [3]: import pandas as pd
In [4]: import random
In [5]: num = random.sample(xrange(10000, 1000000), 5)
In [6]: num
Out[6]: [244937, 132008, 278446, 613409, 799201]
In [8]: names = “hello the cruel world en”.split()
In [9]: names
Out[9]: [‘hello’, ‘the’, ‘cruel’, ‘world’, ‘en’]
In [10]: rec = zip(names, num)
In [15]: data = pd.DataFrame(rec, columns = [u”姓名”,u”業績” ])
In [16]: data
Out[16]:
姓名 業績
0 hello 244937
1 the 132008
2 cruel 278446
3 world 613409
4 en 799201
DataFrame方法函數的第一個參數是數據源,第二個參數columns是輸出數據表的表頭,或者說是表格的欄位名。
導出數據csv
Windows平台上的編碼問題,我們可以先做個簡單處理,是ipython-notebook支持utf8.
import sys
reload(sys)
sys.setdefaultencoding(“utf8”)
接下來可以數據導出了。
In [31]: data
Out[31]:
姓名 業績
0 hello 244937
1 the 132008
2 cruel 278446
3 world 613409
4 en 799201
#在ipython-note里後加問號可查幫助,q退出幫助
In [32]: data.to_csv?
In [33]: data.to_csv(“c:\\out.csv”, index = True, header = [u”僱員”, u”銷售業績”])
將data導出到out.csv文件里,index參數是指是否有主索引,header如果不指定則是以data里columns為頭,如果指定則是以後邊列表裡的字元串為表頭,但要注意的是header後的字元串列表的個數要和data里的columns欄位個數相同。
可到c盤用Notepad++打開out.csv看看。
簡單的數據分析
In [43]: data
Out[43]:
姓名 業績
0 hello 244937
1 the 132008
2 cruel 278446
3 world 613409
4 en 799201
#排序並取前三名
In [46]: Sorted = data.sort([u”業績”], ascending=False)
Sorted.head(3)
Out[46]:
姓名 業績
4 en 799201
3 world 613409
2 cruel 278446
圖形輸出
In [71]: import matplotlib.pyplot as plt
#使ipython-notebook支持matplotlib繪圖
%matplotlib inline
In [74]: df = data
#繪圖
df[u”業績”].plot()
MaxValue = df[u”業績”].max()
MaxName = df[u”姓名”][df[u”業績”] == df[u”業績”].max()].values
Text = str(MaxValue) + ” – ” + MaxName
#給圖添加文本標註
plt.annotate(Text, xy=(1, MaxValue), xytext=(8, 0), xycoords=(‘axes fraction’, ‘data’), textcoords=’offset points’)
如果注釋掉plt.annotate這行
Python Pandas 依據標籤或者位置選取特定行列 loc和iloc兩種方式
Pandas中有兩種方式可以進行特定行列的選取,一種是在知道每一列的名稱(label)的情況下(df.loc),一種是在只知道列的位置(integer-location)的情況下(df.iloc)。
可以看出,上述的冒號(:)意味著選取所有的行,所以只需在此處進行改動即可選取特定行(前開後閉)
同樣在選取特定行的時候,依然存在基於label或者是基於integer-location的選擇
選取行採用df.iloc方式,具體如下
除此之外,在採用非標籤的方式選擇的時候,可以通過輸入布爾型變數進行篩選,比如 df.iloc[[True, False, True]] ,或者是 df.iloc[lambda x: x.index % 2 == 0]
完結撒花,反正知道了df.loc和df.iloc的差別之後自由組合就好了~
參考資料:
怎樣用python,讀取excel中的一列數據
—————————
@1方法一
import xlrd
data=xlrd.open_workbook(‘F:/data.xlsx’)#excle文件位置
sheet=data.sheets()[0] #讀取第一個表
rows=sheet.row_values(0) #讀取第一行
print(rows) #列印第一行
clou=sheet.col_values(0) #讀取第一列
print(clou) #列印第一列
print(rows,clou) #列印第一行第一列
x=clou[1:] #去除第一行的第一個數
print(x)
——————————————————–
@2
import xlrd #導入包
import pandas as pd
data=pd.read_excel(‘F:/data.xlsx’, sheet_name=’Sheet1′)
#print(type(data))
#print(data)
print(data[‘B’])#讀取某一列
print(data.values)#輸出值
print(data.describe())#輸出每列的統計數據
x=data[0:10]
print(x)#輸出前3行
print(x.T)#轉置
print(x.sort_index(axis=1,ascending=False))
a=data.describe()
python如何獲取指定列表名和其中的值?
從整個資料庫中獲取列名(假設資料庫包含超過100行,超過50列),基於pandas中特定列中包含的特定值.
在Bkmm3(來自印度的成員)的幫助下,我在數字術語上取得了成功但在字母術語上失敗了.我試過的方式是這樣的:
df = pd.DataFrame({‘A’:[‘APPLE’,’BALL’,’CAT’],
‘B’:[‘ACTION’,’BATMAN’,’CATCHUP’],
‘C’:[‘ADVERTISE’,’BEAST’,’CARTOON’]})
response = input(“input”)
for i in df.columns: if(len(df.query(i + ‘==’ + str(response))) 0):
print(i)`
然後輸出出現錯誤:
Traceback (most recent call last): NameError: name ‘APPLE’ is not defined
你們的任何幫助都會非常感謝,謝謝. . .
解決方法:
isin / eq適用於DataFrames,您可以100%向量化:
df.columns[df.isin([‘APPLE’]).any()] # df.isin([response])
要麼,
df.columns[df.eq(response).any()]
索引([『A』],dtype =』對象』)
這是使用DataFrame.eval和np.logical_or的迂迴方式(你是在循環列上):
df.columns[
np.logical_or.reduce(
[df.eval(f”{repr(response)} in {i}”) for i in df]
)]
Index([‘A’], dtype=’object’)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304934.html