Man*_*ram 19 python python-2.7 pandas
我试图在数据帧的末尾添加一个空行,但无法这样做,甚至试图理解pandas如何使用追加函数并仍然没有得到它.
这是代码:
import pandas as pd
excel_names = ["ARMANI+EMPORIO+AR0143-book.xlsx"]
excels = [pd.ExcelFile(name) for name in excel_names]
frames = [x.parse(x.sheet_names[0], header=None,index_col=None).dropna(how='all') for x in excels]
for f in frames:
f.append(0, float('NaN'))
f.append(2, float('NaN'))
Run Code Online (Sandbox Code Playgroud)
有两列和随机数的行.
在for循环中使用"print f"来获取:
0 1
0 Brand Name Emporio Armani
2 Model number AR0143
4 Part Number AR0143
6 Item Shape Rectangular
8 Dial Window Material Type Mineral
10 Display Type Analogue
12 Clasp Type Buckle
14 Case Material Stainless steel
16 Case Diameter 31 millimetres
18 Band Material Leather
20 Band Length Women's Standard
22 Band Colour Black
24 Dial Colour Black
26 Special Features second-hand
28 Movement Quartz
Run Code Online (Sandbox Code Playgroud)
sil*_*dev 14
您可以通过将系列附加到数据框来添加它,如下所示.我假设您想要添加仅包含"Nan"的行.您可以先使用Nan创建一个Series对象.确保在-Index参数中定义"Series"对象时指定列.您可以将其附加到DF.希望能帮助到你!
from numpy import nan as Nan
import pandas as pd
>>> df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
... 'B': ['B0', 'B1', 'B2', 'B3'],
... 'C': ['C0', 'C1', 'C2', 'C3'],
... 'D': ['D0', 'D1', 'D2', 'D3']},
... index=[0, 1, 2, 3])
>>> s2 = pd.Series([Nan,Nan,Nan,Nan], index=['A', 'B', 'C', 'D'])
>>> result = df1.append(s2)
>>> result
A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
4 NaN NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)
src*_*rer 13
使用pandas.DataFrame.append()添加一个新的pandas.Series。
如果您希望指定新行的名称(也称为“索引”),请使用:
df.append(pandas.Series(name='NameOfNewRow'))
Run Code Online (Sandbox Code Playgroud)
如果您不想命名新行,请使用:
df.append(pandas.Series(), ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
df您的pandas.DataFrame 在哪里。
假设df是你的数据框,
df_prime = pd.concat([df, pd.DataFrame([[np.nan] * df.shape[1]], columns=df.columns)], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
其中df_prime等于df最后一行 NaN。
请注意,这pd.concat很慢,因此如果您在循环中需要此功能,最好避免使用它。在这种情况下,假设您的索引是增量的,您可以使用
df.loc[df.iloc[-1].name + 1,:] = np.nan
Run Code Online (Sandbox Code Playgroud)
您可以添加一个新系列,并同时为其命名。名称将是新行的索引,所有值将自动为 NaN。
df.append(pd.Series(name='Afterthought'))
Run Code Online (Sandbox Code Playgroud)
将“空”行附加到数据框并填充选定的单元格:
生成空数据框(没有行,只有列a和b):
import pandas as pd
col_names = ["a","b"]
df = pd.DataFrame(columns = col_names)
Run Code Online (Sandbox Code Playgroud)
在数据框末尾附加空行:
df = df.append(pd.Series(), ignore_index = True)
Run Code Online (Sandbox Code Playgroud)
len(df)-1现在填充列中数据框末尾 () 的空单元格a:
df.loc[[len(df)-1],'a'] = 123
Run Code Online (Sandbox Code Playgroud)
结果:
a b
0 123 NaN
Run Code Online (Sandbox Code Playgroud)
当然,我们可以迭代行并填充单元格:
col_names = ["a","b"]
df = pd.DataFrame(columns = col_names)
for x in range(0,5):
df = df.append(pd.Series(), ignore_index = True)
df.loc[[len(df)-1],'a'] = 123
Run Code Online (Sandbox Code Playgroud)
结果:
a b
0 123 NaN
1 123 NaN
2 123 NaN
3 123 NaN
4 123 NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48752 次 |
| 最近记录: |