在Pandas中,我该如何替换空列表?

时间:2017-06-29 12:18:21

标签: python google-maps pandas gis geocoding

在我的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]?

替换列中的空列表

2 个答案:

答案 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); } 方法将原始值保持在条件为真的位置,并在没有时替换为提供的值。