【问题标题】:How to create a dictionary in Python from a csv considering the date and time values?考虑到日期和时间值,如何从 csv 中创建 Python 字典?
【发布时间】:2020-10-23 09:11:37
【问题描述】:

我有一个包含 20 天用户社交媒体活动值的 csv 文件我想获取第 1 天用户活动的详细信息 这是csv中的条目示例

DateTime                  Instagram  Facebook   Twitter
(2020,09,01,10,00,00)        Y          N         Y
(2020,09,01,10,01,00)        N          Y         Y
(2020,09,01,10,02,00)        N          Y         N
(2020,09,01,10,03,00)        N          Y         N
(2020,09,01,10,04,00)        Y          N         Y
(2020,09,01,11,00,00)        Y          N         N
(2020,09,02,10,00,00)        N          Y         Y
(2020,09,02,10,00,00)        Y          N         N
(2020,09,02,10,00,00)        N          N         N
(2020,09,03,10,00,00)        Y          Y         Y

这里的DateTime 列是格式为(年、月、日、时、分、秒)的日期时间对象,根据值,即使一个用户在社交媒体应用程序上处于活动状态,它也被视为Y 如果没有则 N

我创建了一个名为 dict_1 的字典 我希望输出看起来像这样

{'Instagram':[Y,N,N,N,Y,Y],
 'Facebook':[N,Y,Y,Y,N,N],
 'Twitter':[Y,Y,N,N,Y,N]}

我写了一段代码来计算第一天之前的行数

initial=dataset[DateTime[0]].date().day
final=inital+1
days_x=[]
i=0
while(initial<final):
    cons_date=dataset[DateTime[i]].date().day
    initial=cons_date.date().day
    days_x.append((cons_date.date().day,"-",cons_date.date().month," ",cons_date.time().hour,":",cons_date.time().minute))
    i+=1

现在我已经编写了一段代码来获得与上面显示的字典类似的输出

dict_1={}
for i in range(1, len(dataset.columns)):
  if(dataset.columns[i] not in dict_1):
    dict_1[dataset.columns[i]]=[dataset[dataset.columns[i][:len(days_x)]]]

然后列中的所有行都包含在其中,我得到输出以及这样的索引

{'Instagram':[0 Y
              1 N
              .....and so on

我该如何解决这个问题?

【问题讨论】:

  • 请展示最终的字典应该是什么样子
  • @luigigi 检查我编辑的问题,所需的输出部分突出显示第二个突出显示的块

标签: python pandas dictionary


【解决方案1】:

我将DateTime 列更改为pandas 日期时间格式并按日期分组。然后为每一天创建一个字典:

df['DateTime'] = pd.to_datetime(df['DateTime'], format='(%Y,%m,%d,%H,%M,%S)')

for idx, d in df.groupby(df['DateTime'].dt.date):
    print(d.drop('DateTime', axis=1).to_dict('list'))
    
{'Instagram': ['Y', 'N', 'N', 'N', 'Y', 'Y'], 'Facebook': ['N', 'Y', 'Y', 'Y', 'N', 'N'], 'Twitter': ['Y', 'Y', 'N', 'N', 'Y', 'N']}
{'Instagram': ['N', 'Y', 'N'], 'Facebook': ['Y', 'N', 'N'], 'Twitter': ['Y', 'N', 'N']}
{'Instagram': ['Y'], 'Facebook': ['Y'], 'Twitter': ['Y']}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    相关资源
    最近更新 更多