如何为几列定义变量

时间:2019-07-05 17:02:05

标签: python python-3.x pandas

我正在创建一个程序,该程序可以从任何上传的文件(具有特定数据结构)返回不同的统计信息。

我需要写一些代码来定义每个文件中列的变量,问题是在某些情况下有5列,而在其他情况下有7列,8列或更多。

有什么想法吗?也许有一个for循环?

我希望程序读取所有列并将其命名为x1,x2,x3等。

1 个答案:

答案 0 :(得分:1)

如果不指定标题的名称,则大熊猫会推断出它们的名称。您可以根据需要在阅读后更改它们,也可以强迫它们成为您想要的。

例如,让熊猫推断标题名称,然后将其重命名为X1 ...

df = pd.read_csv('test.csv',header=None)
df 

    0   1   2   3   4   #<- Header names given by pandas
0   1   2   3   4   5

df.columns = [f"X{_}" for _ in df.index]
    X0  X1  X2  X3  X4
0   1   2   3   4   5

或者,如果您想给每列指定一个特定的名称,例如

df.columns = ['Foo', 'Bar', 'Baz', 'Biz', 'Boo']
    Foo Bar Baz Biz Boo
0   1   2   3   4   5

或者,如果您希望确保无论用户传入什么数据,所有数据都具有8列。在这种情况下,您将在未填充的列中获得NaN

df = pd.read_csv('test.csv',header=None,names=['X1','X2','X3','X4','X5','X6','X7','X8'])
    X1  X2  X3  X4  X5  X6  X7  X8
0   1   2   3   4   5   NaN NaN NaN

无论您如何编码,都有带有您提供的名称或熊猫提供的名称的列。

df['Foo'] == df[1] == df['X1']