繁体   English   中英

Pandas 中的数据排序

[英]Sorting Data in Pandas

我有如下所示的数据集。 我正在尝试对其进行排序,以便列按以下顺序排列:周末、澳大利亚、德国、法国等...

我尝试使用loc并将每个数据集分配为变量,但是当我创建一个新的 DataFrame 时会导致错误。 任何帮助,将不胜感激。

这是更改前的数据:

地区 周末 价值
澳大利亚 2014-01-11 1.480510
德国 2014-01-11 1.481258
法国 2014-01-11 0.986507
英国 2014-01-11 1.973014
意大利 2014-01-11 0.740629

这是我想要的输出:

周末 澳大利亚 德国 法国 英国 意大利
2014-01-11 1.480510 1.481258 0.986507 1.973014 0.740629

我试过的:

cols = (['Region','Week End','Value'])
df = GS.loc[GS['Brand'].isin(rows)]
df = df[cols]
AUS = df.loc[df['Region'] == 'Australia']
JPN = df.loc[df['Region'] == 'Japan']
US = df.loc[df['Region'] == 'United States of America']

我认为你实际上可以这样做:

df.pivot(index="Week End", columns="Region", values="Value")

用户 965311532 的回答要简洁得多,但使用字典的另一种方法是:

new_df = {'Week End': df['Week End'][0]}
new_df.update({region: value for region, value in zip(df['Region'], df['Value'])})
new_df = pd.DataFrame(new_df, index = [0])

正如用户 965311532 所指出的,如果日期较多,上述代码将不起作用。 在这种情况下,我们可以使用 pandas groupby

dates = []
for date, group in df.groupby('Week End'):
    date_df = {'Week End': date}
    date_df.update({region: value for region, value in zip(df['Region'], df['Value'])})
    date_df = pd.DataFrame(date_df, index = [0])
    dates.append(date_df)
new_df = pd.concat(dates)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM