如何告诉熊猫从左侧读取列?

时间:2019-07-18 19:47:44

标签: python pandas jupyter

我有一个csv,其中缺少一个标题列。例如,我有n个数据列,但n-1个标题名称。发生这种情况时,pandas似乎将我的第一列移动为索引,如图所示。因此,发生的情况是csv中date_time右侧的列在pandas数据框中的date_time列下。

我的问题是:如何强制熊猫从左侧读取,以使date_time数据保留在date_time列下而不是成为索引?我在想,如果熊猫可以简单地从左到右读取并在文件末尾添加虚拟列名,那将是很好的。

旁注:我承认我输入的csv应该是“干净的”,但是,我认为一般而言,pandas / framework应该能够处理某些数据可能不干净的情况,但是用户希望继续进行分析,而不是花30分钟编写辅助功能/脚本来解决这些小问题。就我而言,我关心的数据通常是前15列中的 ,我并不在乎之后的列是否未对齐。但是,当我将数据帧读入pandas时,即使我不在乎其余的列,我也不得不浪费时间解决这些问题。

enter image description here

1 个答案:

答案 0 :(得分:0)

由于您不关心最后一列,因此只需设置@Bean

index_col=False

这样,它将按顺序将列与前df = pd.read_csv(file, index_col=False) 列的数据进行匹配。之后的数据将不在数据框中


您也可以跳过第一行,以使所有数据都位于数据框的第一位

n-1

然后在其后设置列名称

df = pd.read_csv(file, skiprows=1)

第一个列表来自csv的df.columns = ['col1', 'col2', ....] + ['dummy_col1', 'dummy_col2'...] ,而第二个列表只是用列表理解力来充满。