我有一个非常大的数据帧(大约100万行)和实验数据(60个受访者).我想将数据帧拆分为60个数据帧(每个参与者的数据帧).
在数据框(称为= data)中,有一个名为"name"的变量,它是每个参与者的唯一代码.
我尝试了以下,但没有任何反应(或者不会在一小时内停止).我打算做的是将数据帧(数据)拆分成更小的数据帧并将它们附加到列表(datalist):
import pandas as pd
def splitframe(data, name='name'):
n = data[name][0]
df = pd.DataFrame(columns=data.columns)
datalist = []
for i in range(len(data)):
if data[name][i] == n:
df = df.append(data.iloc[i])
else:
datalist.append(df)
df = pd.DataFrame(columns=data.columns)
n = data[name][i]
df = df.append(data.iloc[i])
return datalist
Run Code Online (Sandbox Code Playgroud)
我没有收到错误消息,脚本似乎永远都会运行!
有一种聪明的方法吗?
我有一个如下所示的数据框:
data = [['lynda', 10,'F',125,'5/21/2018'],['tom', np.nan,'M',135,'7/21/2018'], ['nick', 15,'F',99,'6/21/2018'], ['juli', 14,np.nan,120,'1/21/2018'],['juli', 19,np.nan,140,'10/21/2018'],['juli', 18,np.nan,170,'9/21/2018']]
df = pd.DataFrame(data, columns = ['Name', 'Age','Gender','Height','Date'])
df
Run Code Online (Sandbox Code Playgroud)
如何根据性别的 np.NaN 值转换数据框?
我希望将原始数据帧 df 拆分为 df1(Name,Age,Gender,Height,Date) ,其中包含性别值(df 的前 3 行)
AND 其中df2(Name,Age,Height,Date)不会有性别列(df 的最后 3 行)
我有一个数据框正在输出到名为“所有数据”的电子表格中。假设此数据包含企业地址(街道、城市、邮政编码、州的列)。但是,我还想为包含完全相同的列的每个唯一状态创建一个工作表。
我的基本想法是使用迭代每一行df.iterrows()并通过将数据帧附加到新的数据帧来划分数据帧,但这似乎效率极低。有一个更好的方法吗?
我找到了这个答案,但这只是一个布尔索引。