導航:首頁 > 編程語言 > pythonresample實現

pythonresample實現

發布時間:2023-05-27 12:50:29

① 利用python進行數據分析(10)-移動窗口函數

Python-for-data-移動窗口函數

本文中介紹的是 ,主要的運算元是:

統計和通過其他移動窗口或者指數衰減而運行的函數,稱之為 移動窗口函數

<style scoped="">.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre></style>

2292 rows × 3 columns

rolling運算元,行咐肆為和resample和groupby類似

rolling可以在S或者DF上通過銷陵一個window進行調用

<style scoped="">.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre></style>

2292 rows × 3 columns

指定一個常數衰減因子為觀測值提供更多的權重。常用指定衰減因子的方法:使用span(跨度)衡斗轎

一些統計運算元,例如相關度和協方差等需要同時操作兩個時間序列。

例如,金融分析中的股票和基準指數的關聯性問題:計算時間序列的百分比變化pct_change()

<style scoped="">.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre></style>

在rolling及其相關方法上使用apply方法提供了一種在移動窗口中應用自己設計的數組函數的方法。

唯一要求:該函數從每個數組中產生一個單值(縮聚),例如使用rolling()...quantile(q)計算樣本的中位數

② python的image.merge去掉紅色西數

純凈天空
當前位置: 首頁>>代碼示例>>Python>>正文

Python Image.merge方法代碼示例
本文整理匯總了Python中PIL.Image.merge方法的典型用法代碼示例。如果您正苦於以下問題:Python Image.merge方法的具體用法?Python Image.merge怎麼用?Python Image.merge使用的例子?那麼恭喜您, 這里精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類PIL.Image的用法示例。

在下文中一共展示了Image.merge方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點贊,您的評價將有助於我們的系統冊絕滾推薦出更棒的Python代碼示例。

示例1: resolve
▲ 點贊 6 ▼
# 需要宏空導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def resolve(ctx):
from PIL import Image
if isinstance(ctx, list):
ctx = [ctx[0]]
net.load_parameters('superres.params', ctx=ctx)
img = Image.open(opt.resolve_img).convert('YCbCr')
y, cb, cr = img.split()
data = mx.nd.expand_dims(mx.nd.expand_dims(mx.nd.array(y), axis=0), axis=0)
out_img_y = mx.nd.reshape(net(data), shape=(-3, -2)).asnumpy()
out_img_y = out_img_y.clip(0, 255)
out_img_y = Image.fromarray(np.uint8(out_img_y[0]), mode='L')

out_img_cb = cb.resize(out_img_y.size, Image.BICUBIC)
out_img_cr = cr.resize(out_img_y.size, Image.BICUBIC)
out_img = Image.merge('YCbCr', [out_img_y, out_img_cb, out_img_cr]).convert('RGB')

out_img.save('resolved.png')
開發者ID:awslabs,項目名稱:dynamic-training-with-apache-mxnet-on-aws,代碼行數:19,代碼來源:super_resolution.py

示例2: distort_image
▲ 點贊 6 ▼
# 需要導州余入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def distort_image(im, hue, sat, val):
im = im.convert('HSV')
cs = list(im.split())
cs[1] = cs[1].point(lambda i: i * sat)
cs[2] = cs[2].point(lambda i: i * val)

def change_hue(x):
x += hue*255
if x > 255:
x -= 255
if x < 0:
x += 255
return x
cs[0] = cs[0].point(change_hue)
im = Image.merge(im.mode, tuple(cs))

im = im.convert('RGB')
return im
開發者ID:XiaoYee,項目名稱:emotion_classification,代碼行數:20,代碼來源:utils.py

示例3: distort_image
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def distort_image(im, hue, sat, val):
im = im.convert('HSV')
cs = list(im.split())
cs[1] = cs[1].point(lambda i: i * sat)
cs[2] = cs[2].point(lambda i: i * val)

def change_hue(x):
x += hue*255
if x > 255:
x -= 255
if x < 0:
x += 255
return x
cs[0] = cs[0].point(change_hue)
im = Image.merge(im.mode, tuple(cs))

im = im.convert('RGB')
#constrain_image(im)
return im
開發者ID:andy-yun,項目名稱:pytorch-0.4-yolov3,代碼行數:21,代碼來源:image.py

示例4: open_base_img
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def open_base_img(full_profile, res, base_color, color):
# get base image according to profile and perceptual gray of key color
base_num = str([0xE0, 0xB0, 0x80, 0x50, 0x20].index(base_color) + 1)

# open image and convert to Lab
with Image.open('images/{0}_{1}{2}.png'.format(*full_profile, base_num)) as img:
key_img = img.resize((int(s * res / 200) for s in img.size), resample=Image.BILINEAR).convert('RGBA')
if full_profile[1] in ('ISO', 'BIGENTER'): alpha = key_img.split()[-1]
l, a, b = ImageCms.applyTransform(key_img, rgb2lab_transform).split()

# convert key color to Lab
# a and b should be scaled by 128/100, but desaturation looks more natural
rgb_color = color_objects.sRGBColor(*ImageColor.getrgb(color), is_upscaled=True)
lab_color = color_conversions.convert_color(rgb_color, color_objects.LabColor)
l1, a1, b1 = lab_color.get_value_tuple()
l1, a1, b1 = int(l1 * 256 / 100), int(a1 + 128), int(b1 + 128)

# change Lab of base image to match that of key color
l = ImageMath.eval('convert(l + l1 - l_avg, "L")', l=l, l1=l1, l_avg=base_color)
a = ImageMath.eval('convert(a + a1 - a, "L")', a=a, a1=a1)
b = ImageMath.eval('convert(b + b1 - b, "L")', b=b, b1=b1)

key_img = ImageCms.applyTransform(Image.merge('LAB', (l, a, b)), lab2rgb_transform).convert('RGBA')
if full_profile[1] in ('ISO', 'BIGENTER'): key_img.putalpha(alpha)
return key_img
開發者ID:CQCumbers,項目名稱:kle_render,代碼行數:27,代碼來源:key.py

示例5: __call__
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def __call__(self, video_path, frame_indices):
with h5py.File(video_path, 'r') as f:

flow_data = []
for flow in self.flows:
flow_data.append(f[f'video_{flow}'])

video = []
for i in frame_indices:
if i < len(flow_data[0]):
frame = [
Image.open(io.BytesIO(video_data[i]))
for video_data in flow_data
]
frame.append(frame[-1]) # add mmy data into third channel
video.append(Image.merge('RGB', frame))

return video
開發者ID:kenshohara,項目名稱:3D-ResNets-PyTorch,代碼行數:20,代碼來源:loader.py

示例6: test_consistency_5x5
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def test_consistency_5x5(self):
source = Image.open("Tests/images/hopper.bmp")
reference = Image.open("Tests/images/hopper_emboss_more.bmp")
kernel = ImageFilter.Kernel((5, 5), # noqa: E127
(-1, -1, -1, -1, 0,
-1, -1, -1, 0, 1,
-1, -1, 0, 1, 1,
-1, 0, 1, 1, 1,
0, 1, 1, 1, 1), 0.3)
source = source.split() * 2
reference = reference.split() * 2

for mode in ['L', 'LA', 'RGB', 'CMYK']:
self.assert_image_equal(
Image.merge(mode, source[:len(mode)]).filter(kernel),
Image.merge(mode, reference[:len(mode)]),
)
開發者ID:holzschu,項目名稱:python3_ios,代碼行數:19,代碼來源:test_image_filter.py

示例7: test_channels_order
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def test_channels_order(self):
g = Image.linear_gradient('L')
im = Image.merge('RGB', [g, g.transpose(Image.ROTATE_90),
g.transpose(Image.ROTATE_180)])

# Reverse channels by splitting and using table
self.assert_image_equal(
Image.merge('RGB', im.split()[::-1]),
im._new(im.im.color_lut_3d('RGB', Image.LINEAR,
3, 2, 2, 2, [
0, 0, 0, 0, 0, 1,
0, 1, 0, 0, 1, 1,

1, 0, 0, 1, 0, 1,
1, 1, 0, 1, 1, 1,
])))
開發者ID:holzschu,項目名稱:python3_ios,代碼行數:18,代碼來源:test_color_lut.py

示例8: wedge
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def wedge(self):
w = Image._wedge()
w90 = w.rotate(90)

(px, h) = w.size

r = Image.new('L', (px*3, h))
g = r.()
b = r.()

r.paste(w, (0, 0))
r.paste(w90, (px, 0))

g.paste(w90, (0, 0))
g.paste(w, (2*px, 0))

b.paste(w, (px, 0))
b.paste(w90, (2*px, 0))

img = Image.merge('RGB', (r, g, b))

return img
開發者ID:holzschu,項目名稱:python3_ios,代碼行數:24,代碼來源:test_format_hsv.py

示例9: _fry
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def _fry(img):
e = ImageEnhance.Sharpness(img)
img = e.enhance(100)
e = ImageEnhance.Contrast(img)
img = e.enhance(100)
e = ImageEnhance.Brightness(img)
img = e.enhance(.27)
r, b, g = img.split()
e = ImageEnhance.Brightness(r)
r = e.enhance(4)
e = ImageEnhance.Brightness(g)
g = e.enhance(1.75)
e = ImageEnhance.Brightness(b)
b = e.enhance(.6)
img = Image.merge('RGB', (r, g, b))
e = ImageEnhance.Brightness(img)
img = e.enhance(1.5)
temp = BytesIO()
temp.name = 'deepfried.png'
img.save(temp)
temp.seek(0)
return temp
開發者ID:Flame442,項目名稱:FlameCogs,代碼行數:24,代碼來源:deepfry.py

示例10: save_to_disk
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def save_to_disk(self, filename, format='.png'):
"""Save this image to disk (requires PIL installed)."""
filename = _append_extension(filename, format)

try:
from PIL import Image as PImage
except ImportError:
raise RuntimeError(
'cannot import PIL, make sure pillow package is installed')

image = PImage.frombytes(
mode='RGBA',
size=(self.width, self.height),
data=self.raw_data,
decoder_name='raw')
color = image.split()
image = PImage.merge("RGB", color[2::-1])

folder = os.path.dirname(filename)
if not os.path.isdir(folder):
os.makedirs(folder)
image.save(filename, quality=100)
開發者ID:felipecode,項目名稱:coiltraine,代碼行數:24,代碼來源:sensor.py

示例11: from_png_to_bmp
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def from_png_to_bmp(png_path, output_path=BMP_IMAGE_TEST_TO_PATH):
"""
Convert a png_path image into a bmp 3-channel one and return the path to the converted image
:param png_path: path of the image
:param output_path: path in which we save the image
:return: the file path
"""
# convert a .png image file to a .bmp image file using PIL
file_name = os.path.splitext(png_path)[0] \
.split("/")[-1]
file_in = png_path
img = Image.open(file_in)

file_out = os.path.join(output_path, str(file_name), str(file_name) + '.bmp')
len(img.split()) # test
if len(img.split()) == 4:
# prevent IOError: cannot write mode RGBA as BMP
r, g, b, a = img.split()
img = Image.merge("RGB", (r, g, b))
img.save(file_out)
else:
img.save(file_out)
return file_out
開發者ID:mawanda-jun,項目名稱:TableTrainNet,代碼行數:25,代碼來源:inference_with_net.py

示例12: save_to_disk
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def save_to_disk(self, filename):
"""Save this image to disk (requires PIL installed)."""
filename = _append_extension(filename, '.png')

try:
from PIL import Image as PImage
except ImportError:
raise RuntimeError(
'cannot import PIL, make sure pillow package is installed')

image = PImage.frombytes(
mode='RGBA',
size=(self.width, self.height),
data=self.raw_data,
decoder_name='raw')
color = image.split()
image = PImage.merge("RGB", color[2::-1])

folder = os.path.dirname(filename)
if not os.path.isdir(folder):
os.makedirs(folder)
image.save(filename)
開發者ID:PacktPublishing,項目名稱:Hands-On-Intelligent-Agents-with-OpenAI-Gym,代碼行數:24,代碼來源:sensor.py

示例13: distort_image
▲ 點贊 6 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def distort_image(im, hue, sat, val):
im = im.convert('HSV')
cs = list(im.split())
cs[1] = cs[1].point(lambda i: i * sat)
cs[2] = cs[2].point(lambda i: i * val)
def change_hue(x):
x += hue*255
if x > 255:
x -= 255
if x < 0:
x += 255
return x
cs[0] = cs[0].point(change_hue)
im = Image.merge(im.mode, tuple(cs))
im = im.convert('RGB')
return im

# generate random scale.
開發者ID:CharlesPikachu,項目名稱:YOLO,代碼行數:20,代碼來源:utils.py

示例14: perform_inference
▲ 點贊 5 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def perform_inference(sym, arg_params, aux_params, input_img, img_cb, img_cr):
"""Perform inference on image using mxnet"""
metadata = onnx_mxnet.get_model_metadata('super_resolution.onnx')
data_names = [input_name[0] for input_name in metadata.get('input_tensor_data')]
# create mole
mod = mx.mod.Mole(symbol=sym, data_names=data_names, label_names=None)
mod.bind(for_training=False, data_shapes=[(data_names[0], input_img.shape)])
mod.set_params(arg_params=arg_params, aux_params=aux_params)

# run inference
batch = namedtuple('Batch', ['data'])
mod.forward(batch([mx.nd.array(input_img)]))

# Save the result
img_out_y = Image.fromarray(np.uint8(mod.get_outputs()[0][0][0].
asnumpy().clip(0, 255)), mode='L')

result_img = Image.merge(
"YCbCr", [img_out_y,
img_cb.resize(img_out_y.size, Image.BICUBIC),
img_cr.resize(img_out_y.size, Image.BICUBIC)]).convert("RGB")
output_img_dim = 672
assert result_img.size == (output_img_dim, output_img_dim)
LOGGER.info("Super Resolution example success.")
result_img.save("super_res_output.jpg")
return result_img
開發者ID:awslabs,項目名稱:dynamic-training-with-apache-mxnet-on-aws,代碼行數:28,代碼來源:super_resolution.py

示例15: color
▲ 點贊 5 ▼
# 需要導入模塊: from PIL import Image [as 別名]
# 或者: from PIL.Image import merge [as 別名]
def color(src, target):
num_pixels = src.size[0] * src.size[1]
colors = src.getcolors(num_pixels)
rgb = sum(c[0] * c[1][0] for c in colors), sum(c[0] * c[1][1] for c in colors), sum(
c[0] * c[1][2] for c in colors)
rgb = rgb[0] / num_pixels, rgb[1] / num_pixels, rgb[2] / num_pixels
bands = target.split()
for i, v in enumerate(rgb):
out = bands[i].point(lambda p: int(p * v / 255))
bands[i].paste(out)
return Image.merge(target.mode, bands)
開發者ID:avrae,項目名稱:avrae,代碼行數:13,代碼來源:playertoken.py

註:本文中的PIL.Image.merge方法示例由純凈天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。

©2008-2022 | 純凈天空 | 簡體 | 繁體 | 聯系我們 | 京ICP備15018527號-1 | 贊助商

③ 數據蛙-Python進階

這是漫長的一周,本周完成了Python的進階模塊,主要是pandas、numpy、matplotlib、seaborn、pyecharts這些模塊的學習以及一個實際的案例:商品銷售情況分析,之前一直覺得課程難度不夠,但到這一周難度就大大提高了。尤其是案例練習中的RFM模型和用戶生命周期建立,看懂不難但是自差首己寫一直出錯,在不斷出錯不斷嘗試中知識得到了積累,另外可視化部分沒有什麼練習題,希望後面可以加上一些這方面的練習,接下來分模塊來總結一下學習的內容。

重新設置索引:df.set_index()

Series格式轉換為DataFrame:df.to_frame()

文件讀取:pd.read_csv(filepath, header = 0,skiprows=[1,2]) 

使用位禪慶源置做索引:df.loc[0]        使用列表做索引:df.loc[[0,1,2]]

使用切片做索引:df.loc[0:4]        使用bool類型索引:df[df['年齡']>30]

loc 是基於索引值的,切片是左閉右閉的

iloc 是基於位置的,切片是左閉右開的

修改列索引:df.rename(columns={'姓名':'name', '年齡':'age'},inplace=True)

替換一個值:df.replace({'name':{'小明':'xiaoming'}},inplace=True)

對數據進行排序:df.sort_values('age')

累加求和:df.cumsum(0)

刪除列:del df['player']         刪除行:df.drop(labels=0) labels 是行列的名字

數據拼接:pd.concat([left,right],axis=1)

# 指定列進行關聯,默認是 inner join     result = pd.merge(left,right,on='key')

#多個關聯條件:result = pd.merge(left, right, on=['key1', 'key2'])

#左連接:result = pd.merge(left, right, how='left', on=['key1', 'key2'])

# 列名不一樣的關聯:pd.merge(left,right,left_on = ['key1','key2'],right_on = ['key3','key4'])

#單個分組:groups = df.groupby('district')

# 作用多個聚合函數:groups.agg([np.mean,np.sum,np.std])

# 針對具體列聚合 groups.age.agg([np.mean,np.sum,np.std])

# 不同列不同聚合函數 groups.agg({"age":np.mean,"novip_buy_times":np.sum})

分組後該列值求和顯示:groups['vip_buy_times'].transform('sum')

通常用於求佔比:transform(lambda x: x /sum(x))

# 填充指定值:np.full([3,4],1)

# 起始為10,5為步長,30為結賀態尾取不到:np.arange(10, 30, 5)

#隨機矩陣:np.random.random((2,3))

# 平均劃分:np.linspace( 0, 2*pi, 100 )

# 類型及轉換:vector.astype('float')

# 多維變一維:matrix.ravel()

# 矩陣的擴展:a = np.arange(0, 40, 10)    b = np.tile(a, (3, 5))    # 行變成3倍,列變成5倍

# 水平拼接:np.hstack((a,b))  豎直拼接:np.vstack((a,b))

# 豎直分割:np.hsplit(a,3)    #水平分割:np.vsplit(a,3)

8. Select the data in rows [3, 4, 8] and in columns ['animal', 'age'].

A:df.loc[df.index[[3,4,8]],['animal','age']]

行採用位置,列採用普通索引,這里利用index函數將位置變化為具體的普通索引,再利用loc函數

19. The 'priority' column contains the values 'yes' and 'no'. Replace this column with a column of boolean values: 'yes' should be True and 'no' should be False

A1:df['priority'].replace(['yes','no'],[True,False],inplace=True) 用replace函數替換

A2:df['priority'] = df['priority'].map({'yes': True, 'no': False}) 用map函數替換

最大最小值的索引:df.idxmax、df.idxmin

找出最大最小的前N個數:nlargest()和nsmallest() 

將原表分組 並設置分段區間 pd.cut(df['A'], np.arange(0, 101, 10))

resample函數 日期重采樣:s.resample('M').mean()

TimeGrouper 重組:s.groupby(pd.TimeGrouper('4M')).idxmax()

split 分割函數:temp = df['From_To'].str.split('_', expand=True) True為DataFrame

兩個DataFrame拼接用join:df = df.join(temp)

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽

plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號

%matplotlib inline 直接顯示

折線圖:plt.plot(x,y,color = 'r')

柱狀圖:plt.bar(x,y)  plt.barh(x,y) 多個bar x設置不同 堆積圖 bottom設置不同

散點圖:plt.scatter(x, y, c=colors, alpha=0.5, s = area)

直方圖:plt.hist(a,bins= 20) bin代表分隔的最小單位

plt.legend() 顯示圖例

for a,b in zip(X+W[i],data[i]):

    plt.text(a,b,"%.0f"% b,ha="center",va= "bottom") 添加數據標簽

plt.annotate('注釋文本',xy=(1, np.sin(1)),xytext=(2, 0.5), fontsize=16,arrowprops=dict(arrowstyle="->")) 添加註釋文本

plt.xlabel("Group") x軸標題

plt.ylabel("Num") y軸標題

fig, axes = plt.subplots(nrows=2, ncols=2,facecolor='darkslategray')  繪制多個圖形

axes[0,0] axes[0,1] axes[1,0] axes[1,1]

pylab.rcParams['figure.figsize'] = (10, 6) # 調整圖片大小

動態展示圖表

from pyecharts.charts import Bar

from pyecharts import options as opts

** pyecharts 繪圖的五個步驟:**

創建圖形對象:bar = Bar()

添加繪圖數據:bar.add_xaxis(["襯衫", "毛衣", "領帶", "褲子", "風衣", "高跟鞋", "襪子"])

                         bar.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])

                         bar.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])

配置系列參數:對標簽、線型等的一些設置

配置全局參數:bar.set_global_opts(title_opts=opts.TitleOpts(title="銷售情況"))

渲染圖片:生成本地 HTML 文件 bar.render("mycharts.html")  bar.render()

notebook 渲染:bar.render_notebook()

bar = (Bar()

    .add_xaxis(["襯衫", "毛衣", "領帶", "褲子", "風衣", "高跟鞋", "襪子"])

    .add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])

    .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])

    .set_global_opts(title_opts=opts.TitleOpts(title="某商場銷售情況"))

)

bar.render_notebook()

柱狀圖:Bar()

條形圖:bar.reversal_axis() #翻轉XY軸,將柱狀圖轉換為條形圖

折線圖:from pyecharts.charts import Line  line=Line()

餅圖:from pyecharts.charts import Page, Pie    Pie() 

轉換日期類型:df['order_dt']=pd. to_datetime (df.order_dt,format="%Y%m%d")

將日期轉換為月為單位:df['month']=df.order_dt.values. astype('datetime64[M]') 所有日期顯示為當月第一天

去除日期單元值:order_diff/ np.timedelta64(1,'D')

過濾部分極值:grouped_user.sum() .query('order_procts<100') .order_amount

數據透視表:rfm=df.pivot_table( index ='user_id', values =['order_procts','order_amount'], aggfunc ={'order_amount':'sum','order_procts':'sum'})

map() 方法是pandas.series.map()方法, 對DF中的元素級別的操作, 可以對df的某列或某多列

applymap(func) 也是DF的屬性, 對整個DF所有元素應用func操作

purchase_r=pivoted_counts.applymap(lambda x: 1 if x>1 else np.NaN if x==0 else 0)

apply(func) 是DF的屬性, 對DF中的行數據或列數據應用func操作,也可用於Series

apply(lambda x:x.cumsum()/x.sum())    累計佔比

apply(lambda x:x/x.sum(),axis=0)     每一列中每行數據佔比

下周開始進入數據分析思維的課程,很期待後面的課程以及項目,加油!

④ df1.index與df.類別

1、查看數據類型:type(a)
2、查看已安裝的包:
在dos命令行界面:如果你使用的是pip來作為你的python包管理器的話,可以在命令行下直接運行$ pip freeze或者$ pip list來查看安裝包的信息,當然其它的包管理器也有類似的功能,同時,你也可以在python互動式解釋器中導入pip模塊來查看包信息。
在python提示符下,用help(『moles』),可以顯示所有包名稱,用import sys as s >> s.moles.keys() ,可以顯示系統模塊;
3、在linux環境下安裝anaconda:https://blog.csdn.net/wyf2017/article/details/118676765?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2.pc_relevant_default&utm_relevant_index=5
1)先找需要安裝版本的官網地址鏈接,如https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh;
2)在linux控制台輸入:wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
3)先賦權在安裝程序:chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
./Anaconda3-5.3.0-Linux-x86_64.sh
4)一直按ENTER,直到出現選擇yes or no,輸入yes;
5)繼續按ENTER,直到出現選擇yes,輸入yes,添加環境變數;
6)若上面這一步沒選擇yes,會默認選擇no,則需要自己到安裝anaconda的路徑下,設置環境變數:
export PATH=/home/anaconda3/bin:KaTeX parse error: Expected 'EOF', got '#' at position 36: …一句話注釋掉: #̲ export PATH=/u…PATH
export PATH=/root/anaconda3/bin:$PATH
8)然後,保存更改:source ~/.bashrc
9)檢測是否安裝成功:
進入自己的文件夾目錄下輸入:anaconda -V conda -V
4、在linux環境下下載並安裝mysql:https://blog.csdn.net/daren/article/details/89874564?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164517585116780265466903%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164517585116780265466903&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blog_landing_v2~default-3-89874564.nonecase&utm_term=linux%E7%8E%AF%E5%A2%83%E4%B8%8B%E5%AE%89%E8%A3%85mysql&spm=1018.2226.3001.4450
1)先找安裝包網址鏈接:從官網或者網盤下載
2)用linux命令將安裝包下載到指定文件夾下:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
3)再安裝到指定目錄下:
cd 路徑
解壓:tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
修改文件夾名稱:mv mysql-5.7.25-linux-glibc2.12-x86_64 /mysql
2)新建data目錄
命令:mkdir /mysql/data
3)新建mysql用戶組及mysql用戶
命令:groupadd mysql //新建用戶組
命令:useradd mysql -g mysql //新建用戶
4)將/usr/local/mysql的所有者及所屬組改為mysql
chown -R mysql.mysql /usr/local/mysql
5)配置
命令:/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
6)配置/etc/my.cnf
vim /etc/my.cnf
7)開啟服務
命令:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //將mysql加入服務
命令:chkconfig mysql on //開機自動啟動
命令:service mysql start //開啟mysql服務
開啟mysql服務報錯, 在這里插入圖片描述
8)設置密碼
命令:/usr/local/mysql/bin/mysql -u root -p //在my.cnf中配置了取消密碼驗證,此處密碼任意輸入
命令:use mysql; //操作mysql資料庫
命令:update user set authentication_string=password(『你的密碼』) where user=『root』; //修改密碼
命令:flush privileges;
命令:exit; //退出
9)將/etc/my.cnf中的skip-grant-tables刪除
10)如果是本機安裝則到此步驟已經安裝配置完成,如果是在虛擬機或者遠程伺服器上安裝,則需要以下步驟
允許遠程連接
命令:/usr/local/mysql/bin/mysql -u root -p //登錄
命令:use mysql;
命令:update user set host=』%』 where user = 『root』;
命令:flush privileges;
命令:exit;
Pandas
dataframe:
1、dataframe,如何查看一個DataFrame對象的所有索引,列名,以及DataFrame中具體的值?
有一個dataframe對象df1,查看索引使用使用df1.index,查看列名使用df1.columns,查看所有的值為df1.values。
2、創建dataframe:
df1=pd.DataFrame(np.arange(16).reshape(4,4),
index = pd.date_range(『20200101』, periods = 4),
columns=list(『ABCD』))
3、使用df1.index返回的是一個索引,如果獲取具體的值的話,需要使用df1.index.values轉化為列表。
4、根據列名取dataframe的數據
基本格式:dataframe[列名]
1)取多列
列名要用中括弧括起來,所以下述命令
dataframe[[『P4_profit_rate』,『P3PS』,『P3NS』]] 沒問題,返回pandas.core.frame.DataFrame類型的值
dataframe[『P4_profit_rate』,『P3PS』,『P3NS』]出錯
2)取一列
列名可以不用中括弧括起來,
dataframe[『P4_profit_rate』] 沒問題,返回pandas.core.series.Series類型的值
列名也可以用中括弧括起來,
dataframe[[『P4_profit_rate』]] 也能正常運行,但返回pandas.core.frame.DataFrame類型的值
1. 常用基本方法及屬性
df.info() 輸出總行數、各列的行數、類型、索引、佔用內存等信息;
df.index 輸出索引,為 pandas.core.indexes.range.RangeIndex 類型;
df.columns 輸出列名,為pandas.core.indexes.base.Index 類型,可使用df.columns.str ;
df.dtypes 各列的類型,輸出一個series,值是object類型;
df.values 值,輸出一個 array ;
df.describe() 輸出各數值列的統計值,如非空個數、均值、std、極值、分位數。
2. 索引
df.set_index() 設置索引,括弧內可以填入DataFrame中某列的列名,就能使用此列作為索引;
df.loc[ ] 以label索引,可實現花哨的混合索引,如:df.loc[ df.density>100, [『pop』, 『density』] ] ;
df.iloc[ ] 以絕對位置索引,即數字;
掩碼操作,如 df[ df [『density』] > 100 ] 。
3. 計算:
df.cov() 協方差,df.corr() 相關系數,df.mean(axis = 1),df.median(),df.max();
df[ 『Age』 ].value_counts(ascending = True, bins = 5) 非nan計數(升序排列,分箱);
pd.cut()也能實現連續值離散化,pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)。
4. 增刪改查、合並、排序
使用df.()防止誤修改df;
df.rename(index = {『a』 : 『A』}, inplace = True) 重命名索引,注意需要inplace為True才能真正修改;
df.append(df2) 增加;
df.drop([『a』, 『b』], inplace = True) 刪除;
data.drop_plicates()去重,subset參數可以選擇具體的列;
df3 = pd.concat([df1,df2], axis = 0) 實現兩個DataFrame的簡易合並;
pd.merge(on, left_on, right_on, left_index, right_index, how, suffixes) 數據表連接操作,on可以指定多個列作為鍵;
多列排序 data.sort_values(by=[『group』,『data』],ascending = [False,True],inplace=True),即在by、ascending處傳入list,會先按』group』列再按』data』列排序。
5. groupby聚合 和數據透視表pivot_table(相當於多維的groupby操作)
df.pivot_table(index = 『Sex』, columns=『Pclass』, values=『Fare』,aggfunc = 『sum』) ,aggfunc默認是mean;
6. 時間序列
Pandas所有關於日期與時間的處理方法全部是通過Timestamp對象實現的;
pd.to_datetime(『2017-11-24』) 把str轉化為Timestamp對象(pd.Timestamp也可以);
ts + pd.Timedelta(『5 days』) 用Timedelta加上時間間隔;
pd.read_csv()方法中參數parse_dates = True,可以直接將數據中的時間作為索引;
將時間戳作為索引值取出對應時間段內的數據:data[pd.Timestamp(『2012-01-01 09:00』):pd.Timestamp(『2012-01-01 19:00』)] ,
同時也可以使用 data[『2013』],data[『2012-01』:『2012-03』] 等簡便方式;
僅取1月份的數據 data[data.index.month == 1] ;
時間重采樣,將原始數據轉化為均勻間隔的數據,
DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention=『start』,kind
=None, loffset=None, limit=None, base=0),如df.resample(『3D』)方法,對3天的數據進行重采樣。
7. apply自定義函數 DataFrame.apply(func, axis=0, broadcast=False, raw=False, rece=None, args=(), kwds),說明:
允許傳入0個或任意個參數,這些可變參數在函數調用時自動組裝為一個tuple,
關鍵字參數允許傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict。
8.缺失值:DataFrame.isnull().any(),.fillna() 等。
9.字元串Series.str.lower(),str是Series的一個屬性,s.str.upper(),s.str.len(),index.str.strip(),df.columns.str.replace(』 『,』『),s.str.split(』『),s.str.contains(『Ag』),s.str.get_mmies(sep = 『|』) 。
10、notebook顯示設置:
pd.set_option(),pd.get_option()用於使用Notebook做展示;
pd.set_option(『display.max_columns』,30),pd.set_option(『display.max_colwidth』,100),
pd.set_option(『display.max_colwidth』,100)。
11、重復記錄處理
1)生成重復記錄
#生成重復數據
df=pd.DataFrame(np.ones([5,2]),columns=[『col1』,『col2』])
df[『col3』]=[『a』,『b』,『a』,『c』,『d』]
df[『col4』]=[3,2,3,2,2]
df=df.reindex(columns=[『col3』,『col4』,『col1』,『col2』]) #將新增的一列排在第一列
2)判斷重復記錄
isDplicated=df.plicated() #判斷重復數據記錄
3)刪除重復值
new_df1=df.drop_plicates() #刪除數據記錄中所有列值相同的記錄
new_df2=df.drop_plicates([『col3』]) #刪除數據記錄中col3列值相同的記錄
new_df3=df.drop_plicates([『col4』]) #刪除數據記錄中col4列值相同的記錄
new_df4=df.drop_plicates([『col3』,『col4』]) #刪除數據記錄中(col3和col4)列值相同的記錄
4)python去重drop_plicates後一定要reset_index()。
pandas.DataFrame.reset_index
函數作用:重置索引或其level。
重置數據幀的索引,並使用默認索引。如果數據幀具有多重索引,則此方法可以刪除一個或多個level。
函數主要有以下幾個參數:reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=』')
各個參數介紹:
level:可以是int, str, tuple, or list, default None等類型。作用是只從索引中刪除給定級別。默認情況下刪除所有級別。
drop:bool, default False。不要嘗試在數據幀列中插入索引。這會將索引重置為默認的整數索引。
inplace:bool, default False。修改數據幀(不要創建新對象)。
col_level:int or str, default=0。如果列有多個級別,則確定將標簽插入到哪個級別。默認情況下,它將插入到第一層。
col_fill:object, default。如果列有多個級別,則確定其他級別的命名方式。如果沒有,則復制索引名稱。
返回:
DataFrame or None。具有新索引的數據幀,如果inplace=True,則無索引。
python使用問題集錦
1、報錯:NameError: name 『scipy』 is not defined
使用!pip install packages scipy,重新安裝成功後,還報錯;在運行前先from scipy import optimize,再運行也報錯;
還有說是注釋或者換行等問題導致的,都無法解決,最後一個可能再試試:在安裝scipy前要先安裝numpy+mkl(非numpy)。
在如下地址下載安裝numpy: http://www.lfd.uci.e/~gohlke/pythonlibs/#numpy
Numpy+MKL is linked to the Intel® Math Kernel Library and includes required DLLs in the numpy.DLLs directory.
下載完成後,在cmd命令行中用pip install numpy-1.22.2+mkl-pp38-pypy38_pp73-win_amd64.whl進行安裝,報錯如下:
ERROR: numpy-1.22.2+mkl-pp38-pypy38_pp73-win_amd64.whl is not a supported wheel on this platform.
錯誤原因:安裝的不是對應python版本的庫,下載的庫名中cp27代表python2.7,其它同理。我的python是3.8版本,重新下載後,再安裝,進入正常流程中。但是又報如下錯誤: 在這里插入圖片描述

文章知識點與官方知識檔案匹配
Python入門技能樹首頁概覽
208764 人正在系統學習中
點擊閱讀全文
打開CSDN APP,看更多技術內容

Pandas的基本功能_笑 癮的博客_pandas作用
一、Pandas的常用32個方法和功能 DataFrame() 創建一個DataFrame對象 df.values 返回ndarray類型的對象 df.shape 返回行列數 df.index 獲取行索引 df.set_index 設置索引 df.reset_index 重製索引 df.columns 獲取列索引 df.rename 重...
繼續訪問
pandas教程:pandas主要功能詳解_hello-java-maker的博客_pand...
df =pd.read_csv("Counts.csv", header=0) df.head() 1 2 選擇/切片 df[『column_name』] ,df[row_start_index, row_end_index] 選取指定整列數據 df['name'] # 選取一列,成一個series df[['name']] # 選取一列...
繼續訪問
numpy‑1.21.4+mkl‑pp38‑pypy38_pp73‑win_amd64.whl
numpy‑1.21.4+mkl‑pp38‑pypy38_pp73‑win_amd64.whl
Python數據分析 | (17) pandas的基本功能
本篇博客中,我將介紹操作Series和DataFrame中的數據的基本手段。後續將更加深入地挖掘pandas在數據分析和處理方面的功能。這不是pandas庫 的詳盡文檔,主要關注的是最重要的功能,那些不大常用的內容(也就是那 些更深奧的內容)就交給你自己去摸索吧。 目錄 1. 重新索引 2. 丟棄指定軸上的項 3. 索引、選取和過濾 4. 整數索引 5. 算術運算和數據對齊 6. ...
繼續訪問
最新發布 python安裝ERROR: matplotlib-3.6.2-pp38-pypy38_pp73-win_amd64.whl is not a supported wheel on this plat
我把文件名稱改為matplotlib-3.6.2-py39-none-any.whl。2、看到支持的文件的名稱是py30-none-any。
繼續訪問

熱門推薦 使用python經常出現NameError: name 'xxx' is not defined
使用python經常出現NameError: name 『xxx』 is not defined感覺神之存在的Bug 用注釋居然解決了 之前k_means一直是沒定義後來加了注釋#abc就解決了from sklearn.cluster import k_means# abc如下圖所示:解決後感覺太特么奇妙了
繼續訪問

pandas中index索引功能是什麼
pandas的索引對象可以用來保存坐標軸標簽和其它元數據,是使用過程中必要的參與對象,那pandas中index索引功能是什麼呢?pandas中index索引可以輕松的讀取數據,更方便的數據查詢,使用index查詢的時候可以獲得性能提升。 一、index索引特點 更方便的數據查詢,使用index查詢的時候可以獲得性能提升; 自動的數據對齊功能; 更多更強大的數據結構支持。 二、index索引用途 1、使用index讀取數據 import pandas as pd df = pd.read_csv("./.
繼續訪問
pandas 基礎功能(二)
pandas 基礎功能(二) 1.新增 2.刪除 3.修改數據 1.新增 1)在最後新增一列(列S): df["列S]=list ## 增加列的元素個數要跟原數據列的個數一樣 2)在指定位置新增一列(列Q): # 語法格式:列表.insert(index, obj) # index --->對象 obj 需要插入的索引位置。 # obj ---> 要插入列表中的對象(列名) col_name=df1.columns.tolist() # 將數據框的列...
繼續訪問
【報錯解決】復現Deep Supervised Cross-Modal Retrieval報錯mole scipy has no attribute spatial的解決
mole scipy has no attribute spatial報錯的解決。
繼續訪問

Python函數調用出現NameError: name 『xxx『 is not defined的解決辦法
原因: 函數里用的是局部變數,從而函數調用結束後會被銷毀。如果不聲明是全局變數,那麼就會報錯:(注意灰色字體注釋的地方) def load_data(): from keras.datasets import mnist # global train_image, train_lable , test_image, test_lable (train_image, train_lable), (test_image, test_lable) = mnist.load_data.
繼續訪問

Python使用pip安裝報錯:is not a supported wheel on this platform的解決方法
我的python是3.8 win64位 安裝cryptography報錯is not a supported wheel on this platform 首先我是在官網cryptography · PyPI下載的cryptography-37.0.2-pp38-pypy38_pp73-win_amd64.whl 官網如下,安裝的時候報錯cryptography · PyPI 解決版本:改安裝報的名字 步驟一,cmd裡面輸入pip debug --verbose,會列出支持包的名字,我把包的名字改
繼續訪問

Python-Pandas{數據結構與基本功能}
PandsSeries手動構建SeriesSeries的索引和切片按照字典的方式進行索引和切片   Pandas通常是用於數據分析過程中, 數據的清洗, 數據預處理, 數據的描述性分析等過程中。在整個Python數據分析的生態環境中, Pandas的地位非常重要, 利用Pandas可以快速便捷的對數據進行各種各樣的處理與操作.   在Pandas中, 最重要的兩種數據結構是1維的Series和2維的DataFrame. Series:一維數組,與Numpy中的一維array類似。二者與Python基本的數
繼續訪問

Pandas 10. 索引index的用途
更方便的數據查詢:df.loc[index, :]使用index會提升查詢性能自動的數據對齊功能;使用index.更多更強大的數據結構支持 很多強大的索引數據結構Categoricallndex,基於分類數據的Index,提升性能;Multilndex,多維索引,用於groupby多維聚合後結果等;Datetimelndex,時間類型索引,強大的日期和時間的方法支持:
繼續訪問

Pandas的索引index的用途(十一)
1、Pandas的索引index的用途 把數據存儲於普通的column列也能用於數據查詢,那使用index有什麼好處? index的用途總結: 1、更方便的數據查詢; 2、使用index可以獲得性能提升; 3、自動的數據對齊功能; 4、更多更強大的數據結構支持; 2、實例用途 (1)讀取數據 import pandas as pd df = pd.read_csv...
繼續訪問
python語法基礎
1.import 和 from … import 模塊的變數、方法引用差異 from pandas import DataFrame from…import // 直接使用函數名使用就可以了 import pandas as pd import //模塊.函數 a.import…as import:導入一個模塊;註:相當於導入的是一個文件夾,是個相對路徑 import A as B:給予工具庫 A 一個簡單的別稱 B ,可以幫助記憶。例:import torc...
繼續訪問

python數據分析學習(3)
python數據分析·numpy的一些函數
繼續訪問

Pandas詳解三之Index對象
約定 import pandas as pd from pandas import DataFrame import numpy as np Index Index對象保存著索引標簽數據,它可以快速找到標簽對應的整數下標,其功能與Python的字典類似。 dict1={"Province":["Guangdong","Beijing","Qinghai","Fu...
繼續訪問
Pandas的索引index的用途
##Pandas的索引index的用途 '''把數據存儲於普通的column列也能用於數據查詢,那使用index有什麼好處?index的用途總結: 1.更方便的數據查詢; 2.使用index可以獲得性能提升; 3.自動的數據對齊功能; 4.更多更強大的數據結構支持;''' import pandas as pd df =pd.read_csv('F:\\python387\\pandas\\antlearnpandasmaster\\datas\\ml_latest_small\\ratings.csv'.
繼續訪問
python創建python.py時遇到的問題 name is not defined
創建py文件之後,運行文件時報錯: 是一個nameerror,說var為定義,所以執行不成功。這是因為將var定義在了函數裡面,即return後一行的代碼縮進了,導致var沒有定義成功,只需要去除縮進就可以了。 更改如下: ...
繼續訪問

pandas的Index對象
Index對象保存著索引標簽數據,它可以快速找到標簽對應的整數下標,其功能與Python的字典類似。 dict1={"Province":["Guangdong","Beijing","Qinghai","Fujiang"], "year":[2018]*4, "pop":[1.3,2.5,1.1,0.7]} df1=DataFrame(dict1) df1 1 2 3 4 5 代碼結果 Province pop year 0 Guangdong 1.3...
繼續訪問。

⑤ python 代碼問題

將filename 部分字元復制給lable

⑥ python分析奧巴馬資金來源

奧巴馬的競選資金是一點點從選民那裡募集來的。如獲黨內提名,可得政府拔款,但也沒多飢碼少。美國大選不僅禁外國人捐款,而且禁止公司機構捐款,而只允許個人捐款。不僅如此,還為個人捐款限制了上限,防止富人捐過多的款而影響未來的公旦姿平執政。
不僅富人自己不能多捐,如果某個老闆呼籲自己的員工給某人捐錢或投票支持他爛遲哪,都是犯法的。因此,想要籌到幾千萬競爭資金,唯一的辦法是爭取更多選民支持,一點點募集。所以,中國、公司、大筆捐款,這三條都是犯法的。
我記得以前已經有華人鬧過這種丑聞了。美國的選舉法就是要嚴防少數人企圖用幾個臭錢影響美國的政治。所以我們作為外國人就更別去自討沒趣了。

導入包

In [1]:
import numpy as npimport pandas as pdfrom pandas import Series,DataFrame

方便大家操作,將月份和參選人以及所在政黨進行定義

In [2]:
months = {'JAN' : 1, 'FEB' : 2, 'MAR' : 3, 'APR' : 4, 'MAY' : 5, 'JUN' : 6, 'JUL' : 7, 'AUG' : 8, 'SEP' : 9, 'OCT': 10, 'NOV': 11, 'DEC' : 12}of_interest = ['Obama, Barack', 'Romney, Mitt', 'Santorum, Rick', 'Paul, Ron', 'Gingrich, Newt']parties = { 'Bachmann, Michelle': 'Republican', 'Romney, Mitt': 'Republican', 'Obama, Barack': 'Democrat', "Roemer, Charles E. 'Buddy' III": 'Reform', 'Pawlenty, Timothy': 'Republican', 'Johnson, Gary Earl': 'Libertarian', 'Paul, Ron': 'Republican', 'Santorum, Rick': 'Republican', 'Cain, Herman': 'Republican', 'Gingrich, Newt': 'Republican', 'McCotter, Thaddeus G': 'Republican', 'Huntsman, Jon': 'Republican', 'Perry, Rick': 'Republican' }

讀取文件

In [3]:
table = pd.read_csv('data/usa_election.txt')table.head()

C:\jupyter\lib\site-packages\IPython\core\interactiveshell.py:2785: DtypeWarning: Columns (6) have mixed types. Specify dtype option on import or set low_memory=False. interactivity=interactivity, compiler=compiler, result=result)
Out[3]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_occupation contb_receipt_amt contb_receipt_dt receipt_desc memo_cd memo_text form_tp file_num
0 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 RETIRED RETIRED 250.0 20-JUN-11 NaN NaN NaN SA17A 736166
1 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 RETIRED RETIRED 50.0 23-JUN-11 NaN NaN NaN SA17A 736166
2 C00410118 P20002978 Bachmann, Michelle SMITH, LANIER LANETT AL 3.68633e 08 INFORMATION REQUESTED INFORMATION REQUESTED 250.0 05-JUL-11 NaN NaN NaN SA17A 749073
3 C00410118 P20002978 Bachmann, Michelle BLEVINS, DARONDA PIGGOTT AR 7.24548e 08 NONE RETIRED 250.0 01-AUG-11 NaN NaN NaN SA17A 749073
4 C00410118 P20002978 Bachmann, Michelle WARDENBURG, HAROLD HOT SPRINGS NATION AR 7.19016e 08 NONE RETIRED 300.0 20-JUN-11 NaN NaN NaN SA17A 736166
In [8]:
#使用map函數 字典,新建一列各個候選人所在黨派partytable['party'] = table['cand_nm'].map(parties)table.head()
Out[8]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_occupation contb_receipt_amt contb_receipt_dt receipt_desc memo_cd memo_text form_tp file_num party
0 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 RETIRED RETIRED 250.0 20-JUN-11 NaN NaN NaN SA17A 736166 Republican
1 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 RETIRED RETIRED 50.0 23-JUN-11 NaN NaN NaN SA17A 736166 Republican
2 C00410118 P20002978 Bachmann, Michelle SMITH, LANIER LANETT AL 3.68633e 08 INFORMATION REQUESTED INFORMATION REQUESTED 250.0 05-JUL-11 NaN NaN NaN SA17A 749073 Republican
3 C00410118 P20002978 Bachmann, Michelle BLEVINS, DARONDA PIGGOTT AR 7.24548e 08 NONE RETIRED 250.0 01-AUG-11 NaN NaN NaN SA17A 749073 Republican
4 C00410118 P20002978 Bachmann, Michelle WARDENBURG, HAROLD HOT SPRINGS NATION AR 7.19016e 08 NONE RETIRED 300.0 20-JUN-11 NaN NaN NaN SA17A 736166 Republican
In [10]:
#party這一列中有哪些元素table['party'].unique()
Out[10]:
array(['Republican', 'Democrat', 'Reform', 'Libertarian'], dtype=object)
In [ ]:
#使用value_counts()函數,統計party列中各個元素出現次數,value_counts()是Series中的,無參,返回一個帶有每個元素出現次數的Series
In [11]:
table['party'].value_counts()
Out[11]:
Democrat 292400Republican 237575Reform 5364Libertarian 702Name: party, dtype: int64
In [12]:
#使用groupby()函數,查看各個黨派收到的政治獻金總數contb_receipt_amttable.groupby(by='party')['contb_receipt_amt'].sum()
Out[12]:
partyDemocrat 8.105758e 07Libertarian 4.132769e 05Reform 3.390338e 05Republican 1.192255e 08Name: contb_receipt_amt, dtype: float64
In [13]:
#查看具體每天各個黨派收到的政治獻金總數contb_receipt_amt 。使用groupby([多個分組參數])table.groupby(by=['party','contb_receipt_dt'])['contb_receipt_amt'].sum()
Out[13]:
party contb_receipt_dtDemocrat 01-AUG-11 175281.00 01-DEC-11 651532.82 01-JAN-12 58098.80 01-JUL-11 165961.00 01-JUN-11 145459.00 01-MAY-11 82644.00 01-NOV-11 122529.87 01-OCT-11 148977.00 01-SEP-11 403297.62 02-AUG-11 164510.11 02-DEC-11 216056.96 02-JAN-12 89743.60 02-JUL-11 17105.00 02-JUN-11 422453.00 02-MAY-11 396675.00 02-NOV-11 147183.81 02-OCT-11 62605.62 02-SEP-11 137948.41 03-AUG-11 147053.02 03-DEC-11 81304.02 03-JAN-12 87406.97 03-JUL-11 5982.00 03-JUN-11 320176.20 03-MAY-11 261819.11 03-NOV-11 119304.56 03-OCT-11 363061.02 03-SEP-11 45598.00 04-APR-11 640235.12 04-AUG-11 598784.23 04-DEC-11 72795.10 ... Republican 29-AUG-11 941769.23 29-DEC-11 428501.42 29-JAN-11 750.00 29-JAN-12 75220.02 29-JUL-11 233423.35 29-JUN-11 1340704.29 29-MAR-11 38875.00 29-MAY-11 8363.20 29-NOV-11 407322.64 29-OCT-11 81924.01 29-SEP-11 1612794.52 30-APR-11 43004.80 30-AUG-11 915548.58 30-DEC-11 492470.45 30-JAN-12 255204.80 30-JUL-11 12249.04 30-JUN-11 2744932.63 30-MAR-11 50240.00 30-MAY-11 17803.60 30-NOV-11 809014.83 30-OCT-11 43913.16 30-SEP-11 4886331.76 31-AUG-11 1017735.02 31-DEC-11 1094376.72 31-JAN-11 6000.00 31-JAN-12 869890.41 31-JUL-11 12781.02 31-MAR-11 62475.00 31-MAY-11 301339.80 31-OCT-11 734601.83Name: contb_receipt_amt, Length: 1183, dtype: float64
In [14]:
def trasform_date(d): day,month,year = d.split('-') month = months[month] return "20" year '-' str(month) '-' day
In [17]:
#將表中日期格式轉換為'yyyy-mm-dd'。日期格式,通過函數加map方式進行轉換table['contb_receipt_dt'] = table['contb_receipt_dt'].apply(trasform_date)
In [18]:
table.head()
Out[18]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_occupation contb_receipt_amt contb_receipt_dt receipt_desc memo_cd memo_text form_tp file_num party
0 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 RETIRED RETIRED 250.0 2011-6-20 NaN NaN NaN SA17A 736166 Republican
1 C00410118 P20002978 Bachmann, Michelle HARVEY, WILLIAM MOBILE AL 3.6601e 08 RETIRED RETIRED 50.0 2011-6-23 NaN NaN NaN SA17A 736166 Republican
2 C00410118 P20002978 Bachmann, Michelle SMITH, LANIER LANETT AL 3.68633e 08 INFORMATION REQUESTED INFORMATION REQUESTED 250.0 2011-7-05 NaN NaN NaN SA17A 749073 Republican
3 C00410118 P20002978 Bachmann, Michelle BLEVINS, DARONDA PIGGOTT AR 7.24548e 08 NONE RETIRED 250.0 2011-8-01 NaN NaN NaN SA17A 749073 Republican
4 C00410118 P20002978 Bachmann, Michelle WARDENBURG, HAROLD HOT SPRINGS NATION AR 7.19016e 08 NONE RETIRED 300.0 2011-6-20 NaN NaN NaN SA17A 736166 Republican
In [19]:
#查看老兵(捐獻者職業)DISABLED VETERAN主要支持誰 :查看老兵們捐贈給誰的錢最多table['contbr_occupation'] == 'DISABLED VETERAN'
Out[19]:
0 False1 False2 False3 False4 False5 False6 False7 False8 False9 False10 False11 False12 False13 False14 False15 False16 False17 False18 False19 False20 False21 False22 False23 False24 False25 False26 False27 False28 False29 False ... 536011 False536012 False536013 False536014 False536015 False536016 False536017 False536018 False536019 False536020 False536021 False536022 False536023 False536024 False536025 False536026 False536027 False536028 False536029 False536030 False536031 False536032 False536033 False536034 False536035 False536036 False536037 False536038 False536039 False536040 FalseName: contbr_occupation, Length: 536041, dtype: bool
In [21]:
old_bing_df = table.loc[table['contbr_occupation'] == 'DISABLED VETERAN']
In [22]:
old_bing_df.groupby(by='cand_nm')['contb_receipt_amt'].sum()
Out[22]:
cand_nmCain, Herman 300.00Obama, Barack 4205.00Paul, Ron 2425.49Santorum, Rick 250.00Name: contb_receipt_amt, dtype: float64
In [23]:
table['contb_receipt_amt'].max()
Out[23]:
1944042.43
In [24]:
#找出候選人的捐贈者中,捐贈金額最大的人的職業以及捐獻額 .通過query("查詢條件來查找捐獻人職業")table.query('contb_receipt_amt == 1944042.43')
Out[24]:
cmte_id cand_id cand_nm contbr_nm contbr_city contbr_st contbr_zip contbr_employer contbr_occupation contb_receipt_amt contb_receipt_dt receipt_desc memo_cd memo_text form_tp file_num party
176127 C00431445 P80003338 Obama, Barack OBAMA VICTORY FUND 2012 - UNITEMIZED CHICAGO IL 60680 NaN NaN 1944042.43 2011-12-31 NaN X * SA18 763233 Democrat
來源:https://www.icode9.com/content-1-497751.html

⑦ 怎麼使用Python中Pandas庫Resample,實現重采樣,完成線性插值

#python中的pandas庫主要有DataFrame和Series類(面向對象的的語言更願意叫類) DataFrame也就是
#數據框(主要是借鑒R裡面的data.frame),Series也就是序列 ,pandas底層是c寫的 性能很棒,有大神
#做過測試 處理億級別的數據沒問題,起性能可以跟同等配置的sas媲美
#DataFrame索引 df.loc是標簽選取操作,df.iloc是位置切片操作
print(df[['row_names','Rape']])
df['行標簽']
df.loc[行標簽,列標簽]
print(df.loc[0:2,['Rape','Murder']])
df.iloc[行位置,列位置]
df.iloc[1,1]#選取第二行,第二列的值,返回的為單個值
df.iloc[0,2],:]#選取第一行及第三行的數據
df.iloc[0:2,:]#選取第一行到第三行(不包含)的數據
df.iloc[:,1]#選取所有記錄的第一列的值,返回的為一個Series
df.iloc[1,:]#選取第一行數據,返回的為一個Series
print(df.ix[1,1]) # 更廣義的切片方式是使用.ix,它自動根據你給到的索引類型判斷是使用位置還是標簽進行切片
print(df.ix[0:2])
#DataFrame根據條件選取子集 類似於sas裡面if、where ,R裡面的subset之類的函數
df[df.Murder>13]
df[(df.Murder>10)&(df.Rape>30)]
df[df.sex==u'男']
#重命名 相當於sas裡面的rename R軟體中reshape包的中的rename
df.rename(columns={'A':'A_rename'})
df.rename(index={1:'other'})
#刪除列 相當於sas中的drop R軟體中的test['col']<-null
df.drop(['a','b'],axis=1) or del df[['a','b']]
#排序 相當於sas裡面的sort R軟體裡面的df[order(x),]
df.sort(columns='C') #行排序 y軸上
df.sort(axis=1) #各個列之間位置排序 x軸上
#數據描述 相當於sas中proc menas R軟體裡面的summary
df.describe()
#生成新的一列 跟R裡面有點類似
df['new_columns']=df['columns']
df.insert(1,'new_columns',df['B']) #效率最高
df.join(Series(df['columns'],name='new_columns'))
#列上面的追加 相當於sas中的append R裡面cbind()
df.append(df1,ignore_index=True)
pd.concat([df,df1],ignore_index=True)
#最經典的join 跟sas和R裡面的merge類似 跟sql裡面的各種join對照
merge()
#刪除重行 跟sas裡面nokey R裡面的which(!plicated(df[])類似
df.drop_plicated()
#獲取最大值 最小值的位置 有點類似矩陣裡面的方法
df.idxmin(axis=0 ) df.idxmax(axis=1) 0和1有什麼不同 自己摸索去
#讀取外部數據跟sas的proc import R裡面的read.csv等類似
read_excel() read_csv() read_hdf5() 等
與之相反的是df.to_excel() df.to_ecv()
#缺失值處理 個人覺得pandas中缺失值處理比sas和R方便多了
df.fillna(9999) #用9999填充
#鏈接資料庫 不多說 pandas裡面主要用 MySQLdb
import MySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="",db="mysql",use_unicode=True,charset="utf8")
read_sql() #很經典
#寫數據進資料庫
df.to_sql('hbase_visit',con, flavor="mysql", if_exists='replace', index=False)
#groupby 跟sas裡面的中的by R軟體中dplyr包中的group_by sql裡面的group by功能是一樣的 這里不多說
#求啞變數
miper=pd.get_mmies(df['key'])
df['key'].join(mpier)
#透視表 和交叉表 跟sas裡面的proc freq步類似 R裡面的aggrate和cast函數類似
pd.pivot_table()
pd.crosstab()
#聚合函數經常跟group by一起組合用
df.groupby('sex').agg({'height':['mean','sum'],'weight':['count','min']})

#數據查詢過濾

test.query("0.2
將STK_ID中的值過濾出來
stk_list = ['600809','600141','600329']中的全部記錄過濾出來,命令是:rpt[rpt['STK_ID'].isin(stk_list)].
將dataframe中,某列進行清洗的命令
刪除換行符:misc['proct_desc'] = misc['proct_desc'].str.replace('\n', '')
刪除字元串前後空格:df["Make"] = df["Make"].map(str.strip)
如果用模糊匹配的話,命令是:
rpt[rpt['STK_ID'].str.contains(r'^600[0-9]{3}$')]

對dataframe中元素,進行類型轉換

df['2nd'] = df['2nd'].str.replace(',','').astype(int) df['CTR'] = df['CTR'].str.replace('%','').astype(np.float64)

#時間變換 主要依賴於datemie 和time兩個包
http://www.2cto.com/kf/201401/276088.html
#其他的一些技巧
df2[df2['A'].map(lambda x:x.startswith('61'))] #篩選出以61開頭的數據
df2["Author"].str.replace("<.+>", "").head() #replace("<.+>", "")表示將字元串中以」<」開頭;以」>」結束的任意子串替換為空字元串
commits = df2["Name"].head(15)
print commits.unique(), len(commits.unique()) #獲的NAME的不同個數,類似於sql裡面count(distinct name)
#pandas中最核心 最經典的函數apply map applymap

⑧ python關於resample運行報錯

解滾罩決方法:
直接獲取它全部大慎鬧的索引值強制改孝粗變 temp_volume_series.index = temp_time_series!

⑨ python 有沒有對信號進行升采樣的方法,從1000點序列數據轉成10000點數據

這個裡面他的話這個是可以進行進行采樣的方法,然後再從他的點訓練數據中轉換乘1000點的話,它都是裡面是轉化的,數據比較多,所以所以的話工程量比較大。

閱讀全文

與pythonresample實現相關的資料

熱點內容
程序員說有人愛你怎麼回答 瀏覽:106
騰訊游戲安卓怎麼用ios登錄 瀏覽:759
石獅雲存儲伺服器 瀏覽:180
python滲透入門到精通 瀏覽:272
如何真機調試安卓進程 瀏覽:739
農行app怎麼交公共維修基金 瀏覽:667
python中字典增加元素 瀏覽:240
伺服器端渲染的數據怎麼爬 瀏覽:163
壓縮空氣噴射器 瀏覽:488
python提高效率 瀏覽:796
華為文件管理怎麼樣輸入解壓碼 瀏覽:800
深思加密狗初始化 瀏覽:566
黃金崩潰pdf 瀏覽:310
華為特定簡訊息加密 瀏覽:375
微機原理與單片機技術李精華答案 瀏覽:816
pic12c508單片機 瀏覽:309
androidgps調用 瀏覽:226
金文編pdf 瀏覽:445
14乘87減147的簡便演算法 瀏覽:473
怎麼創建edu文件夾 瀏覽:723