Python 将数据帧的最后一列附加到另一个数据帧
我有一个大的csv文件,我将其转换为Python 将数据帧的最后一列附加到另一个数据帧,python,pandas,python-3.4,Python,Pandas,Python 3.4,我有一个大的csv文件,我将其转换为pandas.DataFrame。之后,我将这个数据帧分割成几个较小的数据帧,对它们进行处理,并将每个数据帧转换回csv文件 在处理步骤中,我需要将原始数据帧的最后一列附加到较小的数据帧。我试着用df.iloc[:,-1]和df.ix[:,-1]来做这件事 当我这样做时: rating_column = df.iloc[:,-1] #get last column from original dataframe print
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
如何将此列附加到小的_df
,而不获取NaN值
以下是读取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中匹配,如果您有一些标识符列,则最好使用它进行连接/合并,以便对齐行值。这是因为索引值不匹配,所以它将尝试使用索引进行对齐。尝试将列添加为普通np数组值:
small_df['rating'] = rating_column.values
但是,以上假设顺序与所有csv匹配,如果您有一些标识符列,则最好使用该列进行连接/合并,以便对齐行值。非常感谢,这很有吸引力!我被困在上面大约两个小时。不用担心,如果它解决了你的问题,你可以接受我的回答。我的回答左上角会有一个空的勾号。我本来打算这样做的,但我必须等几分钟才能接受回答。非常感谢,这很有魅力!我被困在上面大约两个小时。不用担心,如果它解决了你的问题,你可以接受我的回答。我的答案左上角将有一个空的勾号。我本来打算这样做的,但我必须等几分钟才能接受答案