python - 在 Pandas 中使用 Nan 值解析 Ugly txt 文件
问题描述
我从一组丑陋的几千行 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)。
任何帮助将非常感激。
解决方案
尝试
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
推荐阅读
- java - MacOS 的 Eclipse/STS 中的包视图样式有问题
- vb.net - 错误库 kernel32.dll 'PInvokeStackImbalance' VB.Net
- c - Inline function, pointer to variable
- sql-server - 多个 T-SQL 嵌套 While 循环
- mongodb - 推送到对象数组中的数组
- spring-boot - 在 SpringBoot 应用程序中为骆驼路由编写单元测试 - 获取 messageCount 0
- angular - Angular 6:在注入任何服务时使用访问修饰符
- google-oauth - 使用 auth_code 流对 https://oauth2.googleapis.com/token 端点的高延迟
- react-native - 如何在第一次渲染时使 react-native 的 flatlist 组件滚动到底部?
- php - 在表格中添加输入表单