在我的pandas数据框中,我有一列包含列表。每隔一段时间,列表都是空的。我想用NULL或[0,0]替换空列表的值。以下是包含这些列表的熊猫系列。
latlng = [[51.8927954, 0.9488230999999999],
[51.6207569, 0.1837936],
[50.8527375, -1.07789],
[],
[51.6216562, 0.119973],
[51.5368817, -0.1753158],
[51.9144871, -0.1612784],
[],
[51.5323296, -0.1771649],
[54.0873327, -1.3961415]]
问题是我想把这些坐标分成lat& amp;长列 - 但是,如果我使用latlng [1],它将在空列表的索引之外。
我尝试用[0,0]替换空列表[]但是我收到错误,说我试图用2替换1个数据。
df['latlng'].replace([[]], [0,0])
如何用NULL或[0,0]?
替换列中的空列表答案 0 :(得分:3)
以下是使用apply
In [439]: df['latlng'].apply(lambda x: x if x else [0, 0])
Out[439]:
0 [51.8927954, 0.9488231]
1 [51.6207569, 0.1837936]
2 [50.8527375, -1.07789]
3 [0, 0]
4 [51.6216562, 0.119973]
5 [51.5368817, -0.1753158]
6 [51.9144871, -0.1612784]
7 [0, 0]
8 [51.5323296, -0.1771649]
9 [54.0873327, -1.3961415]
Name: latlng, dtype: object
答案 1 :(得分:0)
修改:如果目标是将纬度和经度分成两列,则应直接使用:
NaN
切片将返回0
空列表。要改为fillna
,请使用df['lat'] = df['latlng'].str[0].fillna(0)
df['lng'] = df['latlng'].str[1].fillna(0)
:
str
原始回答
尝试df['latlng'] = df['latlng'].where(df['latlng'].str.len() > 0, np.nan)
访问者,可以用于列表:
where
<asp:ComboBox ID="dropdown_dest" runat="server" Width="90%" onfocusout="blurFunction()" AutoCompleteMode="SuggestAppend" CssClass="ComboboxWidth" DropDownStyle="DropDownList" Height="15px" MaxLength="50">
</asp:ComboBox>
function blurFunction()
{
var ddlReport = document.getElementById("<%=dropdown_dest.ClientID%>").value;
alert(ddlReport);
}
方法将原始值保持在条件为真的位置,并在没有时替换为提供的值。