csv dataframe pandas中的另类标题

wf82jlnq  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(77)

DataFrame
"raw" csv
你好我有一个初学者的问题,我的标题不在正确的列前面,我想知道是否有一个食谱可以轻松解决这个问题。也许解决方案很容易找到或者你必须做一个循环,我是一个初学者我有点迷路了
这里的代码:

import pandas as pd
import numpy as np

from google.colab import files
uploaded = files.upload()

df = pd.read_csv("USDJPY_m1_BidAndAsk.csv")
#the output dataframe is on the top

谢谢你的时间

hgncfbus

hgncfbus1#

如果无法修复csv中的输入数据,则可以在阅读csv文件后重命名标题:

df = pd.read_csv("USDJPY_m1_BidAndAsk.csv")
new_headers = ["Date", "Time", "OpenBid", "HighBid", ...]  # Complete with all your header names
df.columns = new_headers

如果标题比数据列少,最后几列将没有标题,但 Dataframe 的开头现在将正确对齐。

wnvonmuf

wnvonmuf2#

问题是你的标题和数据不匹配。在标题中,名称比列少。Pandas假设头名称是最后一列的,因此前几列未命名。然后这些列变成MultiIndex(您可能还不想处理这个问题)。
假设您希望在前几列中使用这些名称。您可以使用df = pd.read_csv("USDJPY_m1_BidAndAsk.csv", usecols=[0,1,2,3,4,5,6,7,9,10])来实现这一点,但是这非常麻烦,并且不会加载最后一列。
另一种方法是自己指定头。一种方法是

df = pd.read_csv(
    "USDJPY_m1_BidAndAsk.csv",
    header = 0,
    names = ["date","time","col1","col2",...,"last_col"]
)

如果你不需要所有的列,也许可以结合使用usecols。请确保指定的列名数与要导入的列名数完全相同。
然而,当你实际修复你的输入数据时,你会更好。

相关问题