我有一些数据框客户有一些"坏"行,此数据框中的键是CustomerID.我知道我应该放弃这些行.我有一个名为badcu的列表,表示[23770, 24572, 28773, ...]每个值对应一个不同的"坏"客户.
然后我有另一个数据框,让我们称之为销售,所以我想删除坏客户的所有记录,坏账户列表中的那些.
如果我做以下事情
sales[sales.CustomerID.isin(badcu)]
Run Code Online (Sandbox Code Playgroud)
我得到了一个数据帧,其中包含我想要删除的记录,但是如果我这样做的话
sales.drop(sales.CustomerID.isin(badcu))
Run Code Online (Sandbox Code Playgroud)
它返回一个数据帧,第一行被删除(这是一个合法的命令),其余的行完好无损(它不会删除坏的),我想我知道为什么会这样,但我还是不知道如何删除不正确的客户ID行.
对不起,基本问题。我开始使用 Python。我使用 Windows 10、Python 3.5、Notepad++ 作为编辑器。Python安装在z:\python35,脚本在z:\python\sqlite,那么我的脚本真的很简单:
import sqlite3
conn = sqlite3.connect('sample.db')
c = conn.cursor()
c.execute("CREATE TABLE example (name VARCHAR)")
conn.close()
Run Code Online (Sandbox Code Playgroud)
当我在 Notepad++ 中运行脚本(以管理员身份运行)时,我执行z:\python35\python.exe -i "$(FULL_CURRENT_PATH)". 看起来脚本运行正确,因为它第一次运行时什么都不做,但下次它说:
sqlite3.OperationalError: table example already exits
没关系,因为我想创建数据库和表。问题是,它sample.db存储在哪里?我在 python 目录或我的项目目录中找不到它。甚至不是通过在 Windows 中搜索。
如何删除整个数据库?
如果我有一个带有标记的HTML文件,<input type="text" size="3" …>它会执行它应该做的事情,它会呈现一个宽度为3个字符的输入元素.另一方面,如果我有标签,<input type="number" size="3" …>它会渲染输入字段的默认宽度(比3个图表更长).
我知道我可以使用a创建一个自定义类.myclass { width: 75px; },但我认为使用size属性要容易得多,特别是如果我知道数字字段接受的数字是0到100,为什么要使用更宽的输入领域?
这是通过设计完成的吗?我需要使用CSS吗?如果是这样,我如何根据我在表单中使用的字体系列/大小呈现正好三个字符宽的输入字段?
注意:请原谅我的英语水平很低,请随时修改问题的标题或以下内容,以便于理解
我的代码中有这一行:
moto = pd.read_csv('reporte.csv')
Run Code Online (Sandbox Code Playgroud)
它会发送DtypeWarning: Columns (2,3,4,5,6,7,8,9,10,12,13) have mixed types.警告,因此我将其更改为
moto = pd.read_csv('reporte.csv', dtype={'TP': np.float64})
Run Code Online (Sandbox Code Playgroud)
现在它掉落了ValueError: could not convert string to float: 'None'。
我用Excel检查了文件(大约20万行),是的,我发现一些单元格的值为“ None ”。
所以我的问题是:是否有一种方法可以忽略该错误,或者强制python用NaN或其他内容填充有问题的错误?
我有一些我和朋友一起玩的游戏的分数数据,它看起来像:
df = pd.DataFrame({'Player' : ['A', 'B', 'C', 'D', 'E'],
'Score1' : [100, 150, 110, 180, 125],
'Score2' : [200, 210, np.nan, 125, 293],
'Score3' : [50, 35, 200, 100, 180]})
Run Code Online (Sandbox Code Playgroud)
如果我做一个,df.boxplot()我会得到一个基于 Score# 的箱线图,也就是说,基于整个社区的分数:
现在我想为每个玩家做一个 boxplot() ,这样我们就可以看到他们彼此之间的排名。像这样的东西:
我尝试的第一件事是做一个转置矩阵的箱线图:
df.T.boxplot()
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误 IndexError: list index out of range
我认为这与在 traspose 中创建的索引有关,所以我一直在玩它们,但我真的不知道还能做什么。
我正在UDemy上学习关于数据可视化的课程(我推荐给你,但它可能看起来像垃圾邮件),在那之前,我一直在使用matplotlib进行可视化,所以Seaborn很新我.在课程中他们谈论corrplot()功能,可以产生如下图表:
但现在,corrplot()已被弃用.我一直在寻找Seaborn文档,以及网络上的一些链接,而我所做的"更接近"是:
当然,我更喜欢原始corrplot()输出,并且它更容易实现,使用该heatmap()功能或任何其他功能的方法是什么?
BTW:产生图表的数据不同,第一个来自视频的捕获,而另一个是我的PC的截图,所以值不一样.
我正在用 Kotlin 编写我的第一个应用程序,所以我对此很陌生。它执行的功能之一是从 API 读取内容,然后根据结果更新屏幕。
我已经用协程尝试了很多东西,但似乎没有任何效果。
例如,我有这样的事情:
private fun readAPI() {
runBlocking {
fun rAPI() = async {
val api = "..."
result = URL(api).readText()
}
println(tag, "Result: " + rAPI().await())
}
}
Run Code Online (Sandbox Code Playgroud)
以及许多不同的方法。似乎没有任何效果。在上述情况下,我收到异常“android.os.NetworkOnMainThreadException”。
到目前为止唯一有效的方法是使用 OkHttp3,如下所述:https ://rstopup.com/como-hacer-una-solicitud-a-la-api-de-kotlin.html (它是西班牙语,但是你会明白的),这很有效,它带来了 API 响应,我解析它,填充我的 sqlite3 数据库等等。但是,由于我不知道 API 何时结束,因此无法更新屏幕控件。如果我尝试连续进行,我会得到一个例外,即只有启动活动的线程才能更新活动或类似的东西。
我已经看到并遵循了很多关于挂起函数、启动等的教程,他们试图用 模仿 API 调用delay(),这些教程工作得很好,直到我尝试进行真正的 API 调用。
那么,您能否指出一个完整的示例,说明如何使用 Kotlin 调用 API,然后更新一些屏幕元素?
编辑我正在编辑通过 val 改变乐趣:
runBlocking {
val rAPI = async {
val api = "..."
URL(api).readText()
}
Log.w(tag, rAPI.await())
}
Run Code Online (Sandbox Code Playgroud)
我得到了“android.os.NetworkOnMainThreadException”异常。
这是我试图在 Seaborn 中重新创建的内容(这是使用 Matplotlib 完成的)
我在 Seaborn 中看到您可以使用 a regplot(),但这个用于散点图。无论如何,如果我尝试使用它,它不会工作,因为它们是x,datetime所以我混合了Seaborn和Matplotlib,它可以工作,但我不喜欢它,我认为必须有更好的方法,只有Seaborn 。
x = range(0, len(hom.fecha))
plt.figure(figsize=(12, 9))
plt.style.use('fivethirtyeight')
chart = sns.lineplot(x='fecha', y='n', data=df,
hue='sexo', markers=True)
chart.set(title='Personas Migrantes', ylabel='# Personas', xlabel="Fecha")
# Linear regressions for each sex
z = np.polyfit(x, hom.n, 1)
p = np.poly1d(z)
plt.plot(hom.fecha, p(x), c="b", ls=":")
z = np.polyfit(x, muj.n, 1)
p = np.poly1d(z)
plt.plot(hom.fecha, p(x), c="r", ls=':')
Run Code Online (Sandbox Code Playgroud)
我得到这张照片:
我认为这比第一个更令人愉快,但我只是不知道如何仅使用seaborn 添加趋势线。
任何想法?
===编辑===
如果我使用regplot()它会引发异常...
sns.regplot(x="fecha", y="n", data=df)
Run Code Online (Sandbox Code Playgroud)
这个......(它绘制了一些东西,比如带有点的散点图)
---------------------------------------------------------------------------
TypeError Traceback …Run Code Online (Sandbox Code Playgroud) 假设我有以下数据框df:
a | b | c
------+-------+-------
5 | 2 | 4
NaN | 6 | 8
5 | 9 | 0
3 | 7 | 1
Run Code Online (Sandbox Code Playgroud)
如果我这样做df.loc[df['a'] == 5],它将正确返回第一行和第三行,但是如果我这样做,df.loc[df['a'] == np.NaN]它什么都不返回。
我认为这更像是蟒蛇而不是熊猫。如果我np.nan与任何东西进行比较,甚至np.nan == np.nan会评估为False,所以问题是,我应该如何测试np.nan?
我正在使用 Laravel 8 和 Livewire。我有一个显示items表中对象的应用程序。当您单击 时item,它会item在右侧显示详细信息。
<ul>
@foreach ($items as $item)
<li wire:click="show({{ $item->id }})" class="...">
{{ $item->name }}
</li>
@endforeach
</ul>
Run Code Online (Sandbox Code Playgroud)
这非常有效,因为show()组件中的方法将执行它所做的任何操作,绑定变量等等......
现在,在详细信息部分,我想制作一个图表,折线图。我已经使用 d3js 完成了它,并且第一次渲染页面时它工作正常,因为我的item变量已经有一个默认值(表中的最后一项)
当我单击“其他”时item,它会显示数据,但图表不会更改其数据,它会保留第一次加载时获取的数据。
我遵循了一些解决方案,这些解决方案说我必须contentChanged向浏览器发送事件,但它似乎不起作用。
在我的组件中,更改选择后我有:
$this->dispatchBrowserEvent('contentChanged');
Run Code Online (Sandbox Code Playgroud)
为了简化事情,在我的刀片中,我有:
<script type="text/javascript">
window.addEventListener('contentChanged', e => {
alert('{{ $item->name }}')
})
</script>
Run Code Online (Sandbox Code Playgroud)
是的,它执行该函数并显示警报,但它$item具有第一次加载页面时的数据。它不需要$item点击时更改的新内容。
我应该怎么办?