【问题标题】:Parsing Ugly txt file in Pandas with Nan Values在 Pandas 中使用 Nan 值解析 Ugly txt 文件
【发布时间】:2021-11-19 19:49:11
【问题描述】:

我从一组丑陋的几千行 txt 数据开始,并将其清理为如下所示:

import pandas as pd
import numpy as np

data = {'Town':['Chicago', 1.11, 1.45, 0.86, 2.68, np.nan, 'Philly', 1.35, 1.55, 3.7], 'lat':[41.878, np.nan, np.nan, np.nan, np.nan, np.nan, 39.9526, np.nan, np.nan, np.nan], 'long':[-87.6298, np.nan, np.nan, np.nan, np.nan, np.nan, -75.165, np.nan, np.nan, np.nan]}
df = pd.DataFrame(data)

我想通过下面的表格获取它,但遇到了一些问题。

data_wanted = {'41.8780':[1.11, 1.45, 0.86, 2.68], '39.9526':[1.35, 1.55, 3.7, np.nan]}
df_wanted = pd.DataFrame(data_wanted)

需要注意的是,每个城镇都有不同数量的值(一个可能是 100,接下来是 13)。

任何帮助将不胜感激。

【问题讨论】:

    标签: python pandas dataframe parsing nan


    【解决方案1】:

    试试

    df['new_lat'] = df['lat'].ffill()
    out = df.query('lat!=new_lat').assign(key = lambda x : x.groupby('new_lat').cumcount()).pivot('key','new_lat','Town')
    Out[377]: 
    new_lat 39.9526 41.8780
    key                    
    0          1.35    1.11
    1          1.55    1.45
    2           3.7    0.86
    3           NaN    2.68
    4           NaN     NaN
    

    【讨论】:

      猜你喜欢
      • 2019-12-22
      • 2021-01-11
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多