繁体   English   中英

如何在不使用循环的情况下将 dataframe 的前四行转换为列名?

[英]How to transform first four rows of dataframe to column names without using loop?

我有 CSV 文件,我需要将它的前四行组合到标题中(第一个 header 需要为空)。 我尝试使用 Pandas 来做到这一点,并且代码可以工作,但我知道不建议通过 dataframe 循环。 有更好的方法吗?

import pandas as pd

df = pd.read_csv(file_path, header=None)
df_headers = df[0:4]
df = df.drop(index=[0,1,2,3,])
header_list = []

for column in df_headers:
    header_list.append(df_headers[column].str.cat(sep=' '))

header_list[0] = ""
df.columns = header_list

df.to_csv('output.csv',index=False)
>>> columns_mapping = dict(zip(range(df.shape[1]), df.iloc[:4].astype(str).apply(' '.join).to_list()))
>>> df = df.iloc[4:].rename(columns=columns_mapping)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM