首页 > 解决方案 > Python中有什么方法可以改变列的位置吗?

问题描述

在此处输入图像描述

嗨,在 Python 中有什么方法可以让我改变列的位置,如下所示: 在此处输入图像描述

非常感谢!

更新:我一直在尝试以转储方式重新构建列,我可以应用任何代码来提高效率吗?谢谢。

now = dt.datetime.now()
length = relativedelta(weeks = 8)
start = now - length
end = now
stocks = ['TSLA','AMZN','FB']
tokens = ['BTC-USD','ETH-USD','DOGE-USD','XRP-USD']

#2. Get data and arrange them together without NaNs
stocks = web.DataReader(stocks, 'yahoo', start, end)
tokens = web.DataReader(tokens, 'yahoo', start, end)
df = tokens.merge(stocks, how='inner', right_index = True, left_index = True)
df.dropna(inplace = True)
df = df[[('Open', 'TSLA'),('High', 'TSLA'),('Low', 'TSLA'),('Close', 'TSLA'),('Adj Close', 'TSLA'),('Volume', 'TSLA'),
                          ('Open', 'AMZN'),('High', 'AMZN'),('Low', 'AMZN'),('Close', 'AMZN'),('Adj Close', 'AMZN'),('Volume', 'AMZN'),
                          ('Open', 'FB'),('High', 'FB'),('Low', 'FB'),('Close', 'FB'),('Adj Close', 'FB'),('Volume', 'FB'),
                          ('Open', 'BTC-USD'),('High', 'BTC-USD'),('Low', 'BTC-USD'),('Close', 'BTC-USD'),('Adj Close', 'BTC-USD'),('Volume', 'BTC-USD'),
                          ('Open', 'ETH-USD'),('High', 'ETH-USD'),('Low', 'ETH-USD'),('Close', 'ETH-USD'),('Adj Close', 'ETH-USD'),('Volume', 'ETH-USD'),
                          ('Open', 'DOGE-USD'),('High', 'DOGE-USD'),('Low', 'DOGE-USD'),('Close', 'DOGE-USD'),('Adj Close', 'DOGE-USD'),('Volume', 'DOGE-USD'),
                          ('Open', 'XRP-USD'),('High', 'XRP-USD'),('Low', 'XRP-USD'),('Close', 'XRP-USD'),('Adj Close', 'XRP-USD'),('Volume', 'XRP-USD')]]
df.to_csv('Data/newohlc.csv')

标签: pythonpandasdataframecsv

解决方案


您可以使用语法 DataFrame[["column1", "column2", "column3"]] 按所需顺序对列名进行重新排序。例子:

import pandas as pd
import numpy as np
df1 = {
    'Name':['George','Andrea','micheal','maggie','Ravi',
               'Xien','Jalpa'],
     'Gender':["M","F","M","F","M","M","F"],      
    'Score':[62.7,47.7,55.6,74.6,31.5,77.3,85.4],
    'Rounded_score':[63,48,56,75,32,77,85]
   }
df1 = pd.DataFrame(df1,columns=['Name','Gender','Score','Rounded_score'])
print(df1)
df2=df1.reindex(columns= ['Rounded_score', 'Gender', 'Score','Name'])
print(df2)


推荐阅读