小编Ewd*_*lam的帖子

如何删除数据帧中 NaN 的第一行和最后一行,并将剩余的 NaN 替换为下方和上方值的平均值?

让我们以此数据框作为一个简单的例子:

df = pd.DataFrame(dict(Col1=[np.nan,1,1,2,3,8,7], Col2=[1,1,np.nan,np.nan,3,np.nan,4], Col3=[1,1,np.nan,5,1,1,np.nan]))

   Col1  Col2  Col3
0   NaN   1.0   1.0
1   1.0   1.0   1.0
2   1.0   NaN   NaN
3   2.0   NaN   5.0
4   3.0   3.0   1.0
5   8.0   NaN   1.0
6   7.0   4.0   NaN
Run Code Online (Sandbox Code Playgroud)

我想首先删除第一行和最后一行,直到第一行和最后一行不再有 NaN 为止。

中间预期产出:

   Col1  Col2  Col3
1   1.0   1.0   1.0
2   1.0   NaN   NaN
3   2.0   NaN   5.0
4   3.0   3.0   1.0
Run Code Online (Sandbox Code Playgroud)

然后,我想用下面的不是 NaN 的最接近值和上面的值的平均值替换剩余的 NaN。

最终预期输出:

   Col1  Col2  Col3
0   1.0   1.0   1.0
1   1.0   2.0   3.0
2   2.0   2.0   5.0 …
Run Code Online (Sandbox Code Playgroud)

python nan dataframe pandas

5
推荐指数
1
解决办法
949
查看次数

用饼图绘制快速订单标签

让我们看一下这个示例数据框:

df = pd.DataFrame({"Day":['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
'Proportion':[0.24495486, 0.17300189, 0.23019185, 0.15408692, 0.17827757,0.01100911, 0.0084778]})

         Day  Proportion
0     Monday    0.244955
1    Tuesday    0.173002
2  Wednesday    0.230192
3   Thursday    0.154087
4     Friday    0.178278
5   Saturday    0.011009
6     Sunday    0.008478
Run Code Online (Sandbox Code Playgroud)

我想使用plotlyexpress通过饼图可视化这个数据框。我构建了以下功能:

import plotly.express as px

def plot_pie_graph(df_graph,col_names,col_values, title_x = "axis_x",title_y="axis_y",title = "Graphe",
                   color_discrete_map = {}, save_graph_name = "") :
    
    if title_x == "axis_x" :
        title_x = col_names
    if title_y == "axis_y":
        title_y = col_values
    
    fig = px.pie(df_graph, values = col_values, names …
Run Code Online (Sandbox Code Playgroud)

python pie-chart plotly plotly-python plotly-express

3
推荐指数
1
解决办法
3310
查看次数

如何删除字符串数据框列中第 n 个之后的所有字符?

让我们以这个简单的数据框为例:

df = pd.DataFrame(dict(Name=['abc','d',np.nan,'vbnc'],NoMatter=[0,6,2,3]))
   Name  NoMatter
0   abc         0
1     d         6
2   NaN         2
3  vbnc         3
Run Code Online (Sandbox Code Playgroud)

我想在列 Name 中删除前两个字符串之后的所有字符。

预期输出:

  Name  NoMatter
0   ab         0
1    d         6
2  NaN         2
3   vb         3
Run Code Online (Sandbox Code Playgroud)

请问我该怎么办?

python string-length dataframe pandas

1
推荐指数
1
解决办法
115
查看次数

在列表中查找不在其他列表中的值

让我们以这些示例列表为例:

L_main = [1,2,3,4,5,6,7,8,9]
L1 = [1,7,3,12]
L2 = [0,2,51,5,9]
L3 = [3,2,8]
Run Code Online (Sandbox Code Playgroud)

我想创建一个列表,其中包含既不在 L1 中,也不在 L2 中,也不在 L3 中的 L_main 值。下面的代码完成了这项工作,但是对于大列表来说真的很慢

[i for i in L_main if i not in L1 and i not in L2 and i not in L3]
Run Code Online (Sandbox Code Playgroud)

你知道更有效的方法吗?
预期结果 :

[4,6]
Run Code Online (Sandbox Code Playgroud)

python list

0
推荐指数
1
解决办法
60
查看次数