dataframe 列A取值为"20202020-20202021",如何让列A取值保留前8位
时间: 2023-04-06 07:00:45 浏览: 97
您可以使用 Pandas 中的字符串切片功能,将列 A 中的值截取前 8 位,代码如下:
```python
import pandas as pd
df['A'] = df['A'].str[:8]
```
其中,`df` 是您的 DataFrame 对象,`df['A']` 是您要操作的列。`.str[:8]` 表示截取字符串的前 8 位。
相关问题
如果dataframe列A取值为NaN,那么让生成列B=1;dataframe列A取值不是NaN,就生成列B=列A+1
您好,欢迎使用ChitGPT进行对话。回答您的问题,您可以使用pandas库中的fillna()方法来实现。代码如下:
```
import pandas as pd
df['B'] = df['A'].fillna(1)
df.loc[df['A'].notnull(), 'B'] = df['A']
```
在第一行中,我们使用fillna()方法将列A中的NaN值替换为1并将结果存储在列B中。在第二行中,我们使用notnull()方法来检测A列是否包含非NaN值,如果是,则将A列的值赋给B列。
请注意,以上代码仅适用于DataFrame类型的数据。如果您有任何其他问题,请告诉我。
如果dataframe列A取值为NaN,那么让生成列B=列A+1;否则就生成列B=列A
你好!谢谢你的提问。针对你的问题,可以使用 pandas 库来处理。以下是一种实现方式:
```python
import pandas as pd
# 假设原始数据为 df,包含列 A 和列 B
df = pd.DataFrame({'A': [1, 2, float('nan'), 4], 'B': [0, 0, 0, 0]})
# 使用 fillna 方法将 NaN 值填充为 1
df['B'] = df['A'].fillna(1)
# 输出结果
print(df)
```
结果如下:
```
A B
0 1.0 1
1 2.0 2
2 NaN 1
3 4.0 4
```
这里使用 `fillna` 方法将列 A 中的 NaN 值填充为 1,然后将结果赋值给列 B。
希望这能解决你的问题,请尽管提出更多的问题,我会尽力回答。
阅读全文