我正在创建一个程序,该程序可以从任何上传的文件(具有特定数据结构)返回不同的统计信息。
我需要写一些代码来定义每个文件中列的变量,问题是在某些情况下有5列,而在其他情况下有7列,8列或更多。
有什么想法吗?也许有一个for循环?
我希望程序读取所有列并将其命名为x1,x2,x3等。
答案 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']