我有一个包含文字的图像列表,但我收到的图像有不同的尺寸(全部大于150像素).我需要将它们全部裁剪为150x100px但保持正确的宽高比.有人可以建议解决这个问题的最佳方法吗?谢谢!
HTML:
<ul>
<div class="post" id="post">
<div>
<li>
<img class="TextWrap" src="{{ picture }}">
<a href="{{ link }}">{{ message }}</a><p>
{{ time }}
</li>
</div>
</ul>
Run Code Online (Sandbox Code Playgroud)
CSS:
.post {
width: 500px;
margin-top: 15px;
float: left;
}
.post img {
width: 150px;
height: 100px;
margin-bottom: 15px;
margin-right: 20px;
}
.TextWrap {
float: left;
}
Run Code Online (Sandbox Code Playgroud) 我想隐藏Seaborn对偶图例。官方文档没有提及关键字图例。我尝试使用的所有方法plt.legend均无效。请提出最佳的前进方式。谢谢!
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
test = pd.DataFrame({
'id': ['1','2','1','2','2','6','7','7','6','6'],
'x': [123,22,356,412,54,634,72,812,129,110],
'y':[120,12,35,41,45,63,17,91,112,151]})
sns.pairplot(x_vars='x', y_vars="y",
data=test,
hue = 'id',
height = 3)
Run Code Online (Sandbox Code Playgroud) 我在整理 wiki 表格时遇到了麻烦,希望以前做过的人可以给我建议。从 List_of_current_heads_of_state_and_government 我需要国家(使用下面的代码),然后只第一次提到国家元首+他们的名字。我不确定如何隔离第一次提及,因为它们都出现在一个单元格中。我试图提取他们的名字给了我这个错误:IndexError: list index out of range. 将感谢您的帮助!
import requests
from bs4 import BeautifulSoup
wiki = "https://en.wikipedia.org/wiki/List_of_current_heads_of_state_and_government"
website_url = requests.get(wiki).text
soup = BeautifulSoup(website_url,'lxml')
my_table = soup.find('table',{'class':'wikitable plainrowheaders'})
#print(my_table)
states = []
titles = []
names = []
for row in my_table.find_all('tr')[1:]:
state_cell = row.find_all('a')[0]
states.append(state_cell.text)
print(states)
for row in my_table.find_all('td'):
title_cell = row.find_all('a')[0]
titles.append(title_cell.text)
print(titles)
for row in my_table.find_all('td'):
name_cell = row.find_all('a')[1]
names.append(name_cell.text)
print(names)
Run Code Online (Sandbox Code Playgroud)
理想的输出将是熊猫 df:
State | Title | Name |
Run Code Online (Sandbox Code Playgroud) 我需要从新闻文章中提取有用的文本。我用 BeautifulSoup 做这件事,但输出把一些段落粘在一起,这阻止了我进一步分析文本。
我的代码:
import requests
from bs4 import BeautifulSoup
r = requests.get("http://www.bbc.co.uk/news/uk-england-39607452")
soup = BeautifulSoup(r.content, "lxml")
# delete unwanted tags:
for s in soup(['figure', 'script', 'style']):
s.decompose()
article_soup = [s.get_text() for s in soup.find_all(
'div', {'class': 'story-body__inner'})]
article = ''.join(article_soup)
print(article)
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样(只有前 5 个句子):
在耶路撒冷被刺死的英国学生汉娜·布拉登 (Hannah Bladon) 的家人表示,他们对这场“毫无意义和悲惨的袭击”感到“震惊”。 20 岁的布拉登女士于耶稣受难日在耶路撒冷的一辆电车上遭到袭击。她去世时在耶路撒冷希伯来大学学习,那天早上一直在参与考古挖掘。布拉登女士的胸部被刺了几次,在医院里死亡。她遭到一名男子的袭击,他从包里拿出一把刀,在老城附近的电车上反复刺伤她,因为基督徒庆祝耶稣受难节和犹太人庆祝逾越节,电车很忙。
我尝试在某些标点符号后添加一个空格,例如“.”、“?”和“!”。
article = article.replace(".", ". ")
Run Code Online (Sandbox Code Playgroud)
它适用于段落(尽管我相信应该有更聪明的方法来做到这一点),但不适用于文章不同部分的字幕,这些部分最终没有任何标点符号。它们的结构如下:
</p>
<h2 class="story-body__crosshead">
Subtitle text
</h2>
<p>
Run Code Online (Sandbox Code Playgroud)
我将不胜感激您的建议。
PS:当我“加入”article_soup 时添加一个空格没有帮助。
我有一个数据框,我需要对其进行分组id,然后对time每个数据框进行排序,并仅保留第一条记录id。尝试了其他答案中建议的不同方法,但无法获得正确的结果。将感谢您的帮助!
test = pd.DataFrame({'id' : [1,1,1,
2,2,
3,3,3,3],
'ref' : ["search","social","direct",
"social","direct",
"direct",'social','social','social'],
'media':['video', 'page', 'video',
'page', 'pic',
'pic', 'video', 'page', 'video'],
'time': ['2019-04-10 19:00:00.569', '2019-04-10 00:10:00.569', '2019-04-10 00:10:20.569',
'2019-04-10 12:10:00.569','2019-04-10 11:10:00.569',
'2019-04-10 22:10:00.569','2019-04-10 14:10:00.569','2019-04-10 14:30:00.569','2019-04-10 15:10:00.569']})
Run Code Online (Sandbox Code Playgroud)
预期结果:
id ref media
0 1 social page
1 2 direct pic
2 3 social video
Run Code Online (Sandbox Code Playgroud) 我已经升级到3.0.2 matplotlib和低于我的脚本中使用我的3D绘图现在抛出这个错误:ValueError: RGBA values should be within 0-1 range。用 2.0.2 版本测试过,它在那里工作......试图谷歌搜索类似的问题,但找不到解决方法,所以向这个聪明的社区寻求帮助......
test = pd.DataFrame({'cluster': ["0", "1", "2"],
'x': [2, 3, 1],
'y': [10, 5, -2],
'z': [-10, -5, 2]})
fig = plt.figure(figsize=(7,7))
ax = Axes3D(fig)
x=test['x']
y=test['y']
z=test['z']
clusters = test['cluster']
ax.scatter(x, y, z, c=clusters, marker='x', cmap='tab20b', depthshade=False)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有一个数据框架df,其中包含一些基本的网络统计信息,这些统计信息按“网页浏览量”(PV)排名:
URL PVs
1 1500
2 1200
3 900
4 700
:
100 25
Run Code Online (Sandbox Code Playgroud)
我正在尝试过滤和计算造成不同页面浏览量(PV)百分比的URL数量。说,我想知道有多少个网址带来了90%的PV(或10%)。
我计算了百分位数:
df.quantile(np.linspace(.1, 1, 9, 0))
Run Code Online (Sandbox Code Playgroud)
而且我知道我可以遍历这样的行(这样我可以总结一下):
for index, row in df.iterrows():
print row['PVs']
Run Code Online (Sandbox Code Playgroud)
但是我无法弄清楚在达到某个阈值时如何停止。将感谢您的帮助!
这是我要绘制的数据框:
my_dic = {'stats': {'apr': 23083904,
'may': 16786816,
'june': 26197936,
}}
my_df = pd.DataFrame(my_dic)
my_df.head()
Run Code Online (Sandbox Code Playgroud)
这是我的绘图方式:
ax = my_df['stats'].plot(kind='bar', legend=False)
ax.set_xlabel("Month", fontsize=12)
ax.set_ylabel("Stats", fontsize=12)
ax.ticklabel_format(useOffset=False) #AttributeError: This method only works with the ScalarFormatter.
plt.show()
Run Code Online (Sandbox Code Playgroud)
剧情:
我想控制科学计数法。如其他问题所建议,我试图通过此行抑制它,plt.ticklabel_format(useOffset=False)但出现此错误- AttributeError: This method only works with the ScalarFormatter。理想情况下,我想以(mln)显示数据。
这是我的数据框的一个例子:
df_lst = [
{"wordcount": 100, "Stats": 198765, "id": 34},
{"wordcount": 99, "Stats": 98765, "id": 35},
{"wordcount": 200, "Stats": 18765, "id": 36},
{"wordcount": 250, "Stats": 788765, "id": 37},
{"wordcount": 345, "Stats": 12765, "id": 38},
{"wordcount": 456, "Stats": 238765, "id": 39},
{"wordcount": 478, "Stats": 1934, "id": 40},
{"wordcount": 890, "Stats": 19845, "id": 41},
{"wordcount": 812, "Stats": 1987, "id": 42}]
df = pd.DataFrame(df_lst)
df.set_index('id', inplace=True)
df.head()
Run Code Online (Sandbox Code Playgroud)
DF:
Stats wordcount
id
34 198765 100
35 98765 99
36 18765 200
37 788765 250 …Run Code Online (Sandbox Code Playgroud) 我有一个包含 36 列的数据框。我想使用 seaborn 一次性(6x6)为每个特征绘制直方图。基本上是繁殖,df.hist()但带有seaborn。我下面的代码仅显示第一个功能的图,所有其他功能都为空。
测试数据框:
df = pd.DataFrame(np.random.randint(0,100,size=(100, 36)), columns=range(0,36))
Run Code Online (Sandbox Code Playgroud)
我的代码:
import seaborn as sns
# plot
f, axes = plt.subplots(6, 6, figsize=(20, 20), sharex=True)
for feature in df.columns:
sns.distplot(df[feature] , color="skyblue", ax=axes[0, 0])
Run Code Online (Sandbox Code Playgroud) 我有两个具有唯一ids 的数据框。他们共享一些列,但不是全部。我需要创建一个组合数据帧,其中将包含id来自第二个数据帧的缺失s 的行。尝试合并和连接,没有运气。可能已经太晚了,我的大脑停止工作了。将感谢您的帮助!
df1 = pd.DataFrame({
'id': ['a','b','c','d','f','g','h','j','k','l','m'],
'metric1': [123,22,356,412,54,634,72,812,129,110,200],
'metric2':[1,2,3,4,5,6,7,8,9,10,11]
})
df2 = pd.DataFrame({
'id': ['a','b','c','d','f','g','h','q','z','w'],
'metric1': [123,22,356,412,54,634,72,812,129,110]
})
df2
Run Code Online (Sandbox Code Playgroud)
结果应如下所示:
id metric1 metric2
0 a 123 1.0
1 b 22 2.0
2 c 356 3.0
3 d 412 4.0
4 f 54 5.0
5 g 634 6.0
6 h 72 7.0
7 j 812 8.0
8 k 129 9.0
9 l 110 10.0
10 m 200 11.0
11 q 812 NaN
12 z 129 …Run Code Online (Sandbox Code Playgroud) 我有一个包含标准化和缩放数据的大型数据框,其范围应在 0-1 之间。但是当我打印它的最大值时,我得到 - 1.000000002。describe()方法不显示此值。所以我试图找出问题并想打印有问题的一行。我遇到的所有其他答案都在谈论打印具有特定列最大值的行。如何打印包含整个数据帧最大值的行?将感谢您的帮助!
test = pd.DataFrame({'att1' : [0.1, 0.001, 0.0001,
1, 2,
0.5, 0, -1, -2],
'att2':[0.01, 0.0001, 0.00001,
1.1, 2.2,
2.37, 0, -1.5, -2.5]})
test.max().max()
Out: 2.37000
Run Code Online (Sandbox Code Playgroud)
想要的结果:
att1 att2
5 0.5 2.37
Run Code Online (Sandbox Code Playgroud)
UPD: 我更新了测试数据框,因为它引起了混乱(我的错!)。我需要打印一行,其中包含整个数据帧的最大值。
这是我的数据框中的数据示例:
test = pd.DataFrame({
'month': [1,2,3,4,5,6,7,8,9],
'new': [23,45,67,89,12,34,56,90,12],
'drop': [2,4,7,9,1,4,6,9,1],
})
month new drop
0 1 23 2
1 2 45 4
2 3 67 7
3 4 89 9
4 5 12 1
5 6 34 4
6 7 56 6
7 8 90 9
8 9 12 1
Run Code Online (Sandbox Code Playgroud)
我需要计算每月的流失率。我需要对列中的 2 行求和new,然后将值drop除以这个总和(以 % 为单位)。
month 1: 2*100/23
month 2: 4*100/(23+45-2)
month 3: 7*100/(23+45+67-2-4)
etc.
Run Code Online (Sandbox Code Playgroud)
任何人都可以提出一种优雅的方式来做到这一点吗?
pandas ×8
python-3.x ×7
matplotlib ×3
python-2.7 ×3
python ×2
seaborn ×2
churn ×1
css ×1
dataframe ×1
group-by ×1
histogram ×1
html ×1
percentile ×1
plot ×1
web-scraping ×1
wikipedia ×1