如何在不删除第一行的情况下将 header 添加到 DataFrame 中?
How do I add a header into a DataFrame without removing the first row?
因此,我正在尝试将 headers 添加到数据框而不删除第一行。
这是数据框
01/02/2022 Lorem 369,02
0 01/02/2022 Lorem 374,12
1 01/02/2022 Lorem 1149,49
当我尝试使用 df.columns 时,它删除了第一行和 return 这个
Date Description Value
0 01/02/2022 Lorem 374,12
1 01/02/2022 Lorem 1149,49
我也尝试过使用 df.MultiIndex,但是使用多索引时,当尝试向列表中添加列时出现错误“AttributeError: 'DataFrame' object has no attribute 'to_list'"
也尝试使用 df.iloc 但我无法让它与 df.query
一起使用
df.query('df.iloc[2] in @list_difference')
它return也是一个错误
现在解释一下我想做的是,比较来自不同数据帧的两列的值
并创建一个 .xlsx,其中包含第一个 DataFrame 中存在但第二个中不存在的值的行。我这样做是通过将特定列放入列表中并使用 For 循环遍历它们,然后使用 df.query 来过滤具有存储在“list_difference”
上的值的列表
正如@Ynjxsjmh 所评论的那样,当您使用 pd.read_csv
.
阅读 table 时,最好设置 header=None
如果您已经阅读了 table,这里有一个 hacky 方法来完成您需要的操作,将 table 转置两次以利用 reset_index
.
import pandas as pd
#create example df
df = pd.DataFrame({1:[2,3,4],'A':['B','C','D']})
print(df)
# 1 A
#0 2 B
#1 3 C
#2 4 D
#transpose, reset_index, transpose back, reset_index again
df = df.T.reset_index().T.reset_index(drop=True)
df.columns = ['nums', 'letters'] #rename the columns
print(df)
# nums letters
#0 1 A
#1 2 B
#2 3 C
#3 4 D
您可以在读取 CSV 数据时设置自定义列headers。
df = pd.read_csv(csv_file, names = ['Date', 'Description', 'Value'])
因此,我正在尝试将 headers 添加到数据框而不删除第一行。
这是数据框
01/02/2022 Lorem 369,02
0 01/02/2022 Lorem 374,12
1 01/02/2022 Lorem 1149,49
当我尝试使用 df.columns 时,它删除了第一行和 return 这个
Date Description Value
0 01/02/2022 Lorem 374,12
1 01/02/2022 Lorem 1149,49
我也尝试过使用 df.MultiIndex,但是使用多索引时,当尝试向列表中添加列时出现错误“AttributeError: 'DataFrame' object has no attribute 'to_list'"
也尝试使用 df.iloc 但我无法让它与 df.query
一起使用df.query('df.iloc[2] in @list_difference')
它return也是一个错误
现在解释一下我想做的是,比较来自不同数据帧的两列的值 并创建一个 .xlsx,其中包含第一个 DataFrame 中存在但第二个中不存在的值的行。我这样做是通过将特定列放入列表中并使用 For 循环遍历它们,然后使用 df.query 来过滤具有存储在“list_difference”
上的值的列表正如@Ynjxsjmh 所评论的那样,当您使用 pd.read_csv
.
header=None
如果您已经阅读了 table,这里有一个 hacky 方法来完成您需要的操作,将 table 转置两次以利用 reset_index
.
import pandas as pd
#create example df
df = pd.DataFrame({1:[2,3,4],'A':['B','C','D']})
print(df)
# 1 A
#0 2 B
#1 3 C
#2 4 D
#transpose, reset_index, transpose back, reset_index again
df = df.T.reset_index().T.reset_index(drop=True)
df.columns = ['nums', 'letters'] #rename the columns
print(df)
# nums letters
#0 1 A
#1 2 B
#2 3 C
#3 4 D
您可以在读取 CSV 数据时设置自定义列headers。
df = pd.read_csv(csv_file, names = ['Date', 'Description', 'Value'])