删除DataFrame中的列时,我使用:
del df['column_name']
Run Code Online (Sandbox Code Playgroud)
这很有效.为什么我不能使用以下?
del df.column_name
Run Code Online (Sandbox Code Playgroud)
由于您可以访问列/系列df.column_name,我希望这可以工作.
说我有一个数据帧
import pandas as pd
import numpy as np
foo = pd.DataFrame(np.random.random((10,5)))
Run Code Online (Sandbox Code Playgroud)
我从我的数据子集创建另一个数据帧:
bar = foo.iloc[3:5,1:4]
Run Code Online (Sandbox Code Playgroud)
确实bar持有这些元素的副本foo?有没有办法创建view这些数据呢?如果是这样,如果我尝试修改此视图中的数据会发生什么?Pandas是否提供任何类型的写时复制机制?
我有一个带有二进制值的数据框,在使用 Pandas 执行 get_dummies 后
df=
Values A1 A2 B1 B2 B3 B4 C1 C2 C3
10 1 0 1 0 0 0 1 0 0
12 0 1 0 0 1 0 0 1 0
3 0 1 0 1 0 0 0 0 1
5 1 0 0 0 0 1 1 0 0
Run Code Online (Sandbox Code Playgroud)
我想要一个新列,它包含所有列的组合,其中包含 1
Expected output:
Values A1 A2 B1 B2 B3 B4 C1 C2 C3 Combination
10 1 0 1 0 0 0 1 0 …Run Code Online (Sandbox Code Playgroud) 我有pandas.df 233行* 234列,我需要评估每个单元格,如果不是nan,则返回相应的列标题,到目前为止,我写了以下内容:
#First get a list of all column names (except column 0):
col_list=[]
for column in df.columns[1:]:
col_list.append(column)
#Then I try to iterate through every cell and evaluate for Null
#Also a counter is initiated to take the next col_name from col_list
#when count reach 233
for index, row in df.iterrows():
count = 0
for x in row[1:]:
count = count+1
for col_name in col_list:
if count >= 233: break
elif str(x) != 'nan':
print col_name
Run Code Online (Sandbox Code Playgroud)
代码不能完全做到这一点,我需要更改什么才能使代码在233行之后中断并转到下一个col_name?
Example: …Run Code Online (Sandbox Code Playgroud)