复制包含不同分隔符、列名中的空格等的表的最佳方法是什么。该函数pd.read_clipboard()无法自行管理此任务。
示例 1:
| Age Category | A | B | C | D |
|--------------|---|----|----|---|
| 21-26 | 2 | 2 | 4 | 1 |
| 26-31 | 7 | 11 | 12 | 5 |
| 31-36 | 3 | 5 | 5 | 2 |
| 36-41 | 2 | 4 | 1 | 7 |
| 41-46 | 0 | 1 | 3 | 2 |
| 46-51 | 0 | 0 | …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Plotly 绘制腿部的 3D 扫描图Mesh3D。
我使用scatter_3dXYZ 点来展示这个概念:
fig = px.scatter_3d(df, x='x', y='y', z='z', opacity = 0.8)
Run Code Online (Sandbox Code Playgroud)
然而,它看起来并不像一个表面。因此,我尝试Mesh3d使用:
fig = go.Figure(data=[go.Mesh3d(x=x, y=y, z=z, color='lightpink', opacity=0.50)])
Run Code Online (Sandbox Code Playgroud)
显然,这个剧情并不顺利。我尝试在渲染绘图之前对 df 进行排序,但没有帮助。
重申一下,我正在寻找该 XYZ 数据的平滑曲面图。
这是扫描的XYZ 数据。
编辑:有关曲面图介绍的继续信息
我用下面的代码实现了曲面图。不幸的是,没有渲染任何图(也没有伴随错误)。
colnames = ['x', 'y', 'z']
df = pd.read_csv('sandbox\leg.txt', sep = ' ', header = None, names = colnames)
x, y = np.array(df['x'].tolist()), np.array(df['y'].tolist())
df2 = df.pivot(index = 'x', columns = 'y', values = 'z')
z = df2.values
fig …Run Code Online (Sandbox Code Playgroud) 我在变压器模型中使用MultiHeadAttention层(我的模型与命名实体识别模型非常相似)。因为我的数据具有不同的长度,所以我使用填充和attention_mask参数MultiHeadAttention来屏蔽填充。如果我使用Masking之前的图层,它会和参数MultiHeadAttention有相同的效果吗?attention_mask或者我应该同时使用:attention_mask和Masking图层?
是否有任何有效的方法来合并具有交集的集合。例如:
l = [{1, 3}, {2, 3}, {4, 5}, {6, 5}, {7, 5}, {8, 9}]
Run Code Online (Sandbox Code Playgroud)
预期的结果是:
r = [{1, 2, 3}, {4, 5, 6, 7}, {8, 9}]
Run Code Online (Sandbox Code Playgroud)
应合并所有具有交集(公共组件)的集合。例如:
{1, 3} & {2, 3}
# {3}
Run Code Online (Sandbox Code Playgroud)
所以这两组应该合并:
{1, 3} | {2, 3}
# {1, 2, 3}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我没有任何可行的解决方案。
更新:结果中集合的顺序并不重要。
我想使用 Pickle 转储和加载我的 Sklearn 训练模型。怎么做?
我有以下数据帧(方法的结果unstack):
df = pd.DataFrame(np.arange(12).reshape(2, -1),
columns=pd.CategoricalIndex(['a', 'b', 'c', 'a', 'b', 'c']))
Run Code Online (Sandbox Code Playgroud)
df 看起来像这样:
a b c a b c
0 0 1 2 3 4 5
1 6 7 8 9 10 11
Run Code Online (Sandbox Code Playgroud)
当我尝试时,df.reset_index()出现以下错误:
TypeError: cannot insert an item into a CategoricalIndex that is not already an existing category
Run Code Online (Sandbox Code Playgroud)
为了绕过这个问题,我想将列的索引从分类索引转换为普通索引。最直接的方法是什么?也许您知道如何在不进行索引转换的情况下重置索引。我有以下想法:
df.columns = list(df.columns)
Run Code Online (Sandbox Code Playgroud) 考虑我有以下字典:
someDict = {
'A': [1,2,3],
'B': [4,5,6],
'C': [7,8,9]
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以迭代为所有可能的组合创建新的字典,即?
{'A' : 1, 'B': 4, 'C':7}
{'A' : 1, 'B': 4, 'C':8}
{'A' : 1, 'B': 4, 'C':9}
{'A' : 2, 'B': 4, 'C':7}
Run Code Online (Sandbox Code Playgroud)
ETC
我有一个包含三列的熊猫数据框:
a b c
Donaldson Minnesota 2020
Ozuna Atlanta 2020
Betts Boston 2019
Donaldson Atlanta 2019
Ozuna St. Louis 2019
Torres New York 2019
Run Code Online (Sandbox Code Playgroud)
我想识别具有多个列 c 值的所有列名称,然后将所有列 b 实例替换为数据框中的第一个值,如下所示:
a b c
Donaldson Minnesota 2020
Ozuna Atlanta 2020
Betts Boston 2019
Donaldson Minnesota 2019
Ozuna Atlanta 2019
Torres New York 2019
Run Code Online (Sandbox Code Playgroud)
这绝对是低效的,但这是我迄今为止尝试过的:
# get a df of just names and cities and deduplicate
df_names = df[['a','b']].drop_duplicates()
# find any multiple column b values and put them in a list
a_matches …Run Code Online (Sandbox Code Playgroud) 假设我有一个正在循环的算法。它将返回未知数量的结果,我想将它们全部存储在 DataFrame 中。例如:
df_results = pd.DataFrame(columns=['x', 'x_squared'])
x = 0
x_squared = 1
while x_squared < 100:
x_squared = x ** 2
df_iteration = pd.DataFrame(data=[[x,x_squared]], columns=['x', 'x_squared'])
df_results = df_results.append(df_iteration, ignore_index=True)
x += 1
print(df_results)
Run Code Online (Sandbox Code Playgroud)
输出:
x x_squared
0 0 0
1 1 1
2 2 4
3 3 9
4 4 16
5 5 25
6 6 36
7 7 49
8 8 64
9 9 81
10 10 100
Run Code Online (Sandbox Code Playgroud)
问题是当我想要进行大量迭代时。数学运算本身非常快。然而,当我们进行大循环时,数据帧的创建和附加变得非常慢。
我知道这个特定的例子可以很容易地解决,而无需在每次迭代中使用数据帧。但是想象一个复杂的算法,它还对数据帧等执行操作。对我来说,有时一步一步构建结果数据帧会更容易。哪种方法是最好的?
我想要做的是按 A 列分组,然后取前两行的总和,然后将该值分配为新列。下面的例子:
DF:
ColA ColB
AA 2
AA 1
AA 5
AA 3
BB 9
BB 3
BB 2
BB 12
CC 0
CC 10
CC 5
CC 3
Run Code Online (Sandbox Code Playgroud)
期望的DF:
ColA ColB NewCol
AA 2 3
AA 1 3
AA 5 3
AA 3 3
BB 9 12
BB 3 12
BB 2 12
BB 12 12
CC 0 10
CC 10 10
CC 5 10
CC 3 10
Run Code Online (Sandbox Code Playgroud)
对于 AA,它查看 ColB 并取前两行的总和并将该总和值分配给 newCol。我已经尝试通过循环遍历唯一的 ColA 值来创建字典,创建前两行的子集数据框,求和,然后用值填充字典。然后将字典映射回来 - 但我的数据框非常大并且需要很长时间。有任何想法吗?
谢谢!
python ×9
pandas ×5
dataframe ×4
3d ×1
clipboard ×1
combinations ×1
copy-paste ×1
dictionary ×1
graph-theory ×1
keras ×1
pickle ×1
plot ×1
plotly ×1
scikit-learn ×1
set ×1
tensorflow ×1
wavefront ×1