【问题标题】:How to transpose and group by CSV data using python如何使用 python 对 CSV 数据进行转置和分组
【发布时间】:2020-04-12 11:51:39
【问题描述】:

我必须转置和分组 CSV 数据值

我拥有的实际数据data_input.csv

data = pd.read_csv(r"data_input.csv")
data.transpose()

我需要的预期输出是:

如何将所有特定国家/地区放在一起,假设我有三列与印度,所以我必须保持所有列值以印度开头。

【问题讨论】:

  • 您可以将数据复制并粘贴到您的问题中,而不是图像中吗?
  • @DavidErickson - 我已经拍摄了我所拥有的确切数据。
  • 复制并粘贴它,这样人们就可以将数据复制并粘贴到他们的python解释器中进行测试,而不是手动输入。

标签: python pandas csv data-analysis


【解决方案1】:

pandas.DataFrame.set_index

>>> import pandas as pd
>>> data = pd.read_csv(r"Book1.csv")
>>> df = data.set_index('Date')
>>> data
        Date  India- Actual  Australia- Actual      ...       India- Virtual  Australia- Virtual  USA- Virtual
0   31/10/19        21209.0             3292.0      ...               3656.0              1245.0        1525.0
1  1/11/2019         2060.0             2600.0      ...               3396.0             35008.0        2389.0
2  2/11/2019         3652.0             2874.0      ...               3456.0              2356.0        4561.0
3  3/11/2019         3696.0             9658.0      ...               3652.0              6325.0        3652.0
4  4/11/2019        35008.0             6589.0      ...               8745.0              9658.0        8520.0
5  5/11/2019         7894.0             9647.0      ...               8898.0              9874.0        3029.0
6        NaN            NaN                NaN      ...                  NaN                 NaN           NaN
7        NaN            NaN                NaN      ...                  NaN                 NaN           NaN

[8 rows x 7 columns]
>>> df
           India- Actual  Australia- Actual  USA- Actual  India- Virtual  Australia- Virtual  USA- Virtual
Date
31/10/19         21209.0             3292.0       2587.0          3656.0              1245.0        1525.0
1/11/2019         2060.0             2600.0       3652.0          3396.0             35008.0        2389.0
2/11/2019         3652.0             2874.0       4578.0          3456.0              2356.0        4561.0
3/11/2019         3696.0             9658.0       6925.0          3652.0              6325.0        3652.0
4/11/2019        35008.0             6589.0       2899.0          8745.0              9658.0        8520.0
5/11/2019         7894.0             9647.0       3652.0          8898.0              9874.0        3029.0
NaN                  NaN                NaN          NaN             NaN                 NaN           NaN
NaN                  NaN                NaN          NaN             NaN                 NaN           NaN
>>> df.T
Date                31/10/19  1/11/2019  2/11/2019  3/11/2019  4/11/2019  5/11/2019  NaN  NaN
India- Actual        21209.0     2060.0     3652.0     3696.0    35008.0     7894.0  NaN  NaN
Australia- Actual     3292.0     2600.0     2874.0     9658.0     6589.0     9647.0  NaN  NaN
USA- Actual           2587.0     3652.0     4578.0     6925.0     2899.0     3652.0  NaN  NaN
India- Virtual        3656.0     3396.0     3456.0     3652.0     8745.0     8898.0  NaN  NaN
Australia- Virtual    1245.0    35008.0     2356.0     6325.0     9658.0     9874.0  NaN  NaN
USA- Virtual          1525.0     2389.0     4561.0     3652.0     8520.0     3029.0  NaN  NaN
>>>

注意:请分享示例数据以避免示例数据创建时间并更正确地理解问题陈述。

猜你喜欢
  • 1970-01-01
  • 2014-05-06
  • 2013-04-19
  • 2020-05-26
  • 1970-01-01
  • 2015-08-13
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多