如何使用python pandas将CSV解析为所需的格式?

艾伦·兰

我是python熊猫的新手。我有一个CSV文件,如下所示:

insectName   count   weather  location   time        date      Condition
  aaa         15      sunny   balabala  0900:1200   1990-02-10     25
  bbb         10      sunny   balabala  0900:1200   1990-02-10     25
  ccc         20      sunny   balabala  0900:1200   1990-02-10     25
  ddd         50      sunny   balabala  0900:1200   1990-02-10     25
  ...        ...      ...      ...        ...            ...       ...
  XXX         40      sunny   balabala  1300:1500   1990-02-15     38
  yyy         10      sunny   balabala  1300:1500   1990-02-15     38
  yyy         25      sunny   balabala  1300:1500   1990-02-15     38

该文件中包含许多数据,并且每天的insectName都可以重复。我想连续一天按“日期”转换数据使用情况。像这样:

insectName  count  insectName  count  insectName  count  weather  location  time        date      Condition
  ccc         20      bbb       10       aaa        15    sunny   balabala  0900:1200   1990-02-10     25
  yyy         25      yyy       10       XXX        40    sunny   balabala  1300:1500   1990-02-15     38
  ...        ...      ...      ...       ...        ...    ...      ...        ...            ...        ...     

我该怎么办?

忘了它

有一个groupby/cumcount/unstack技巧可以将长格式数据帧转换为宽格式数据帧:

import pandas as pd
df = pd.read_table('data', sep='\s+')

common = ['weather', 'location', 'time', 'date', 'Condition']
grouped = df.groupby(common)
df['idx'] = grouped.cumcount()
df2 = df.set_index(common+['idx'])
df2 = df2.unstack('idx')
df2 = df2.swaplevel(0, 1, axis=1)
df2 = df2.sortlevel(axis=1)
df2.columns = df2.columns.droplevel(0)
df2 = df2.reset_index()
print(df2)

产量

  weather  location       time        date  Condition insectName  count  \
0   sunny  balabala  0900:1200  1990-02-10         25        aaa     15   
1   sunny  balabala  1300:1500  1990-02-15         38        XXX     40   

  insectName  count insectName  count insectName  count  
0        bbb     10        ccc     20        ddd     50  
1        yyy     10        yyy     25        NaN    NaN  

虽然宽格式可能对表示有用,但请注意,长格式通常是用于数据处理的正确格式。请参阅Hadley Wickham关于整齐数据的优点文章(PDF)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串解析为本地日期未使用所需的世纪

如何使用Python将XML文件解析为txt文件

如何根据所需的精度将数字解析为int或float?

如何将python字典转换为所需格式

如何将这些数据解析为指定格式?

使用Pandas在Python中即时将日期解析为datetime

如何将图像数组从json格式解析为tabelview

将复杂格式的文本解析为python数据表

如何将txt文件解析为csv并修改格式

使用Pandas将数据编程为CSV

python read_csv pandas将具有类似1990M01格式的列解析为每月日期格式

如何使用pandas.read_csv将非字符串列解析为日期时间

如何使用python将Outlook中的电子邮件正文提取并解析为pandas df?

将CSV解析为python中的模板

使用数据透视将数据帧排序为所需格式

如何将特殊的JSON格式解析为JavaScript对象?

使用Python读取csv时将字节解析为str

如何将mongoDB数据导出为CSV格式?

使用PHP将SQL表导出为CSV格式

将CSV文件解析为列(最好使用python)

如何将Python pandas DataFrame解析为矩阵市场(MM)格式?

使用C ++将.csv中的数据读取为可用格式

如何使用Python将特定的CSV格式转换为JSON

如何将检索数据存储为 CSV 格式

使用 grep 将 HTML 解析为 CSV

python将字符串解析为csv格式

如何使用 BeautifulSoup 将 JSON 文件从 HTML 解析为 Python?

使用python将文本数据解析为JSON格式

将 csv 转换为 json 文件格式。不确定如何使用 pandas 或 python 在 json 中实现预期输出