将 DataFrame 的最后一列附加到另一个 DataFrame
Attach last column of DataFrame to another DataFrame
我有一个很大的 csv 文件,我将其转换为 pandas.DataFrame
。之后,我将这个数据框分成几个较小的数据框,对其进行处理并将每个数据框转换回 csv 文件。
在处理步骤中,我需要将原始数据框的最后一列附加到较小的数据框。我试着用 df.iloc[:,-1]
和 df.ix[:,-1]
.
来做
当我这样做时:
rating_column = df.iloc[:,-1] #get last column from original dataframe
print(rating_column)
我得到正确的结果:
timestamp
2015-07-22 21:40:00 passed
2015-07-22 21:50:00 passed
2015-07-22 22:00:00 passed
2015-07-22 22:10:00 failed
但是当我将该列添加到带有 small_df['rating'] = rating_column
的较小数据框时,small_df 仅包含该列的 NaN:
timestamp average rating
2015-07-22 21:40:00 73 NaN
2015-07-22 21:50:00 74 NaN
2015-07-22 22:00:00 73 NaN
2015-07-22 22:10:00 NaN NaN
如何在不获取 NaN 值的情况下将此列附加到 small_df
?
这是读取csv文件的代码:
import pandas as pd
with open(filename, 'r') as csvfile:
df = pd.read_csv(csvfile,
parse_dates=True,
index_col=0,
sep=';',
header=None,
skipinitialspace=True,
low_memory=False,
names=range(0,amount_of_columns))
这是因为索引值不匹配,所以它会尝试使用索引对齐。尝试将列添加为普通 np 数组值:
small_df['rating'] = rating_column.values
但是,以上假定顺序匹配所有 csv,如果您有一些标识符列,那么最好 join/merge 使用它以使行值对齐。
我有一个很大的 csv 文件,我将其转换为 pandas.DataFrame
。之后,我将这个数据框分成几个较小的数据框,对其进行处理并将每个数据框转换回 csv 文件。
在处理步骤中,我需要将原始数据框的最后一列附加到较小的数据框。我试着用 df.iloc[:,-1]
和 df.ix[:,-1]
.
当我这样做时:
rating_column = df.iloc[:,-1] #get last column from original dataframe
print(rating_column)
我得到正确的结果:
timestamp
2015-07-22 21:40:00 passed
2015-07-22 21:50:00 passed
2015-07-22 22:00:00 passed
2015-07-22 22:10:00 failed
但是当我将该列添加到带有 small_df['rating'] = rating_column
的较小数据框时,small_df 仅包含该列的 NaN:
timestamp average rating
2015-07-22 21:40:00 73 NaN
2015-07-22 21:50:00 74 NaN
2015-07-22 22:00:00 73 NaN
2015-07-22 22:10:00 NaN NaN
如何在不获取 NaN 值的情况下将此列附加到 small_df
?
这是读取csv文件的代码:
import pandas as pd
with open(filename, 'r') as csvfile:
df = pd.read_csv(csvfile,
parse_dates=True,
index_col=0,
sep=';',
header=None,
skipinitialspace=True,
low_memory=False,
names=range(0,amount_of_columns))
这是因为索引值不匹配,所以它会尝试使用索引对齐。尝试将列添加为普通 np 数组值:
small_df['rating'] = rating_column.values
但是,以上假定顺序匹配所有 csv,如果您有一些标识符列,那么最好 join/merge 使用它以使行值对齐。