我的数据框看起来像这样
df =
1324 1322 1323 1326 1327 1328 1329
278650 2.15 2.15 2.15 2.15 2.15 2.15
535947 2.15 2.15 2.15 2.15 2.15 2.15
我想点如下订购
1322 1323 1324 1326 1327 1328 1329
278650 2.15 2.15 2.15 2.15 2.15 2.15
535947 2.15 2.15 2.15 2.15 2.15 2.15
我尝试使用pandas sort,sort_index
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort.html http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_index.html
但没弄清楚它是如何运作的
有没有有效的方法可以做到这一点?
该列还缺少值
1322,1323,1324,失踪,1326,1327,1328,1329
所以我想在缺少的情况下添加空列。
在这种情况下
1322 1323 1324 1325 1326 1327 1328 1329
278650 2.15 2.15 2.15 2.15 2.15 2.15
535947 2.15 2.15 2.15 2.15 2.15 2.15
请注意,列的边界为1322到1373.
我通过这样做解决了第一个问题
weeks = range(1322,1374)
df = df.loc[:,weeks]
答案 0 :(得分:1)
用于分类:
http://pandas.pydata.org/pandas-docs/version/0.13.1/generated/pandas.DataFrame.sort.html
添加新列:
使用原始df1索引创建系列:
df1['e'] = Series(np.random.randn(sLength), index=df1.index)
答案 1 :(得分:1)
试试这个:
df.sort_index(axis = 1,inplace = True) ##Sorts the DataFrame by columns (axis = 1) in place
修复排序问题,试试这个:
import pandas as pd
desired_cols = range(1322,1374)
for col in desired_cols:
if col not in df.columns:
df[col] = pd.Series([])
else:
pass
添加具有np.nan
值的列。
答案 2 :(得分:1)
使用sort_index
:
赞:
df.sort_index(axis=1,inplace=True)
或者:
df=df.sort_index(axis=1)
两种情况:
print(df)
得到想要的东西。