我正在尝试清理CSV
文件数据集,然后再使用它来创建一些虚线图。你知道吗
其中一列是UNITMEASURENAME
,包括:
Thousand Barrels per day (kb/d)
Thousand Kilolitres (kl)
Thousand Barrels per day (kb/d)
Thousand Kilolitres (kl)
Conversion factor barrels/ktons
Conversion factor barrels/ktons
Thousand Barrels (kbbl)
另一列包含每个对应的rows
的值。你知道吗
还有一个国家和一个数据列。你知道吗
我需要做的是将UNITMEASURENAME
拆分为单独的列,从列中获取值和数字。你知道吗
df.pivot_table
行得通吗?你知道吗
我已经在pandas
中完成了以下操作,但我认为它在Dash中不适用于plotly graph:
TK = df.loc[df['UNITMEASURENAME']=='Thousand Kilolitres (kl)']
IN = df.loc[df['COUNTRYNAME']=='INDIA']
这并不是在实际的CSV文件中创建新列。你知道吗
TK = df.loc[df['UNITMEASURENAME']=='Thousand Kilolitres (kl)']
IN = df.loc[df['COUNTRYNAME']=='INDIA']
我想要新的列,然后我会保存与他们实际的CSV文件。你知道吗
{'Unnamed: 0': {0: 0, 1: 1, 2: 2, 3: 3, 4: 4},
'Year': {0: 2018, 1: 2018, 2: 2018, 3: 2018, 4: 2018},
'Month': {0: 3, 1: 3, 2: 3, 3: 4, 4: 4},
'OBSVALUE': {0: 7323.0, 1: 9907.0, 2: 48827.7847, 3: 9868.0, 4: 47066.6794},
'COUNTRYNAME': {0: 'SAUDI ARABIA',
1: 'SAUDI ARABIA',
2: 'SAUDI ARABIA',
3: 'SAUDI ARABIA',
4: 'SAUDI ARABIA'},
'UNITMEASURENAME': {0: 'Conversion factor barrels/ktons',
1: 'Thousand Barrels per day (kb/d)',
2: 'Thousand Kilolitres (kl)',
3: 'Thousand Barrels per day (kb/d)',
4: 'Thousand Kilolitres (kl)'},
'alternate_date': {0: '2018-03-01',
1: '2018-03-01',
2: '2018-03-01',
3: '2018-04-01',
4: '2018-04-01'}}
CSV文件头:
Unnamed: 0 Year Month OBSVALUE COUNTRYNAME UNITMEASURENAME alternate_date
0 0 2018 3 7323.0000 SAUDI ARABIA Conversion factor barrels/ktons 2018-03-01
1 1 2018 3 9907.0000 SAUDI ARABIA Thousand Barrels per day (kb/d) 2018-03-01
2 2 2018 3 48827.7847 SAUDI ARABIA Thousand Kilolitres (kl) 2018-03-01
3 3 2018 4 9868.0000 SAUDI ARABIA Thousand Barrels per day (kb/d) 2018-04-01
4 4 2018 4 47066.6794 SAUDI ARABIA Thousand Kilolitres (kl) 2018-04-01
似乎您有一个多列键(年、月、国家名称,也许还有备用的\日期),这很好,但这会使数据透视变得困难/很危险。所以呢,我将简单地为您提供一些代码,以便根据该列中的值创建新列。你知道吗
首先,我喜欢复制数据帧,这样就不会丢失原始数据
现在,让我们得到该列所有值的唯一列表
现在让我们为每个值创建一个新列
如果lambda函数太混乱:
我测试了这个代码。你知道吗
我认为可以使用Pandas DataFrame的
pivot
方法使用分类值创建新列。你知道吗现在您可以将其合并到原始数据帧中,以保留其他列以供分析
相关问题 更多 >
编程相关推荐